VBA ile Satır Sayısını Bulma

  • Konuyu başlatan Konuyu başlatan merakli
  • Başlangıç tarihi Başlangıç tarihi
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Kısa Açıklama

VBA ile Satır Sayısını Bulma isimli başlıkta, ilgili işlemlere dair detaylar yer almaktadır.
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Aşağıdaki makro BosSatir(C7:N40) şeklinde kullanarak C:N sütunları boş olan satırları saydırıyorum.
Ancak bana dolu olan satır sayısı lazım.
Bu fonksiyonun içine boş satırı sayısına verilen aralıktaki satır sayısından çıkartarak dolu satır sayısına nasıl ulaşabilirim?

BosSatir(E5 : P24) şeklinde E : P arasındaki sütunların tamamı boş ise 1 olarak saydırıyorum.
Şimdi bu fonksiyona fonksiyona verilen aralıktaki (E5 : P24) toplam sütun sayısından çıkartarak dolu satır sayısına ulaşmaya çalışıyorum.
Bu fonsiyona bu eklemeyi nasıl yapabilirim?
Dolu Satır Sayısı = (Satır Sayısı - Boş Satır Sayısı)
şeklinde bir sonuç verecek.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(9 satır)

BoşSatır.webp
 

Ekli dosyalar

Ayrı bir fonksiyon olarak aşağıdaki kodu kullanabilirsiniz.

Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(11 satır)
 
Moderatörün son düzenlenenleri:
Çözüm
@Ömer BARAN Bey bu şekilde mi?
Denedim ama eksik hesapladı sanki
VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(11 satır)

Aşağıdaki şekilde deneyince de Boş satır sayısını veriyor sanki

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(11 satır)
 
Pardon ben yanlış anlamışım.
O örnek zaten boş satır sayısını veriyordu.
Benim amacım boş satır sayısından dolu satır sayısına ulaşmaktı ama ikisini tek bir işlemde yapmak daha mantıklı gelince fonksiyonu direk dolu satır sayısına hedefledim.

Aşağıdaki fonksiyon istenilen sonucu veriyor. Buna şimdide o aralıktaki 3 sütundan 1. sütun aralığındaki hücrelerdeki toplam değeri aldırmak geldi aklıma bu ozaman diğer işlemide bu fonksiyona eklemiş olacağım

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(11 satır)
 
Aşağıdaki işlemi fonksiyona ekleyebilir miyiz?

Burada şöyle bir dikkat çekici durum var

fonsiyonu şu şekilde çağıracağız.

=DoluSatir($C$7:$E$40, "D")
=DoluSatir($C$7:$E$40, "Y")
=DoluSatir($C$7:$E$40, "NET")

D şeklinde olan C sütununun ortalamasının (Yani 3 sütunun ilk sütununun toplamını)
Y şeklinde olan D sütununun ortalamasının (Yani 3 sütunun ikinci sütununun toplamını)
NET şeklinde olan E sütununun ortalamasının (Yani 3 sütunun son sütununun toplamını)
sonucunu verecek

yani C:E şeklinde 3 sütunun dolu satırlarını hesaplayıp
her satırdaki toplam değere bu sayıyı bölecek

Screenshot_12.webp
 

Ekli dosyalar

Moderatörün son düzenlenenleri:
@merakli
Belirttiğim; dolu ve boş durumu için kullanılacak TEK KTF kodu şöyle olabilir.

Formülü;
-- BOŞ olanlar için =SATIRADET(E1:H5;"bos") veya =SATIRADET(E1:H5;"") ya da =SATIRADET(E1:H5 ; )
-- DOLU olanlar için =SATIRADET(E1:H5;"dolu")
şeklinde yazarak sonuç alabilirsiniz.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(8 satır)
 
@Ömer BARAN Bey çok teşekkür ederim.
Ancak sizin hoşlanmadığınız durum hasıl oldu
Bir üst mesajda en son hali ile tüm işlemleri bir tek fonksiyonda toplamaya çalışmıştım.

Bu mesajımı kısaca örnek ekleyerek ve sizin fonksiyonu kullanarak açıklamaya çalışayım.
Aslında sizin fonksiyon içine bulunduğu satırın toplam değerine bulup böldürmek eklenecek....

BARAN.webp
 

Ekli dosyalar

Bence bu işi küçük bir makro koduyla yaptırmak daha pratik olacak.
Yapmanız gereken sadece kodun en başındaki alan = .... kısmına ilgili alanın adresini ve
sncsat= .... kısmına da sonuçların yazılacağı satır numarasını yazmak.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(16 satır)
 
Moderatörün son düzenlenenleri:
Değişik dediğiniz tanımlanabilir bir şeyse (belli bir metine göre veya hep 10'uncu satırda E'den sağa doğru olmak üzere, en sağdaki dolu hücre ....vs gibi ) alan da kodla tespit edilebilir olur. Sonucun yazılacağı satır da benzer şekilde bir başlık metni , veri alanından 3 satır sonra vs gibi tanımlanabilir durumdayza her şey halledilebilir.

Ben kullanım kolaylığı olsun diye öyle kod hazırladım
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Benzer Konular Popüler İçerikler Daha Fazlası
Geri
Üst