VBA ile Satır Sayısını Nasıl Bulabiliriz?

Çözüldü VBA ile Satır Sayısını Nasıl Bulabiliriz?

  • Konuyu başlatan Konuyu başlatan merakli
  • Başlangıç tarihi Başlangıç tarihi

merakli

Site Üyesi
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)


Ekli dosyayı görüntüle 14743
 

Ekli dosyalar

  • BoşSatır.xlsm
    BoşSatır.xlsm
    20 KB · Görüntüleme: 2
  • BoşSatır.webp
    BoşSatır.webp
    77 KB · Görüntüleme: 18
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:
Telefondan yazıyorum.

Konu sahibinin verdiği kodda, = 0 yerine,
= SutunAraligi.columns.Count
yazmaya ne dersiniz !
@Ömer BARAN Bey bu şekilde mi?
Denedim ama eksik hesapladı sanki
CPP:
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

CPP:
Görüntülemek için giriş yapmanız gerekmektedir.
(11 satır)
 
Moderatörün son düzenlenenleri:
Konu açılış mesajındaki KTF kodundan söz etmiştim.
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

CPP:
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:
Ancak geç vakit, dolu/boş seçenekli tek KTF kodu iletmeye çalışayım.
Şu an, "boarding completed" aşamasındayım.

@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)
 
Belirttiğim; dolu ve boş durumu için kullanılacak TEK KTF kodu şöyle olabilir.

@Ö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....

Tüm işlemler şu şekildeydi
E : P sütunlarının tümü dolu olan satırları toplamı (Sizin formül bunu yapıyor) =SATIRADET(E5 : P24; "dolu")
Hesap yapılan satırı -şu durumda E sütunu- (E5:E24) değerlerini toplayıp =SATIRADET(E5 : P24; "dolu") fonksiyonunun yani dolu satır sayısına bölerek o satırın ortalamasını bulmak..
Bu işlemi Tek bir fonksiyon altında yapmaya çalışıyorum.
ÖRNEK
ORTALAMA_AL(E5 : P24; "dolu"; "E5:E24") ===>> E5 : P24 arasında tüm satırları dolu olan satır sayısını, E5:E24 arasındaki değerleri topla ve bu değerleri bölerek ortalamasını bul
ORTALAMA_AL(E5 : P24; "dolu"; "F5:F24") ===>> E5 : P24 arasında tüm satırları dolu olan satır sayısını, F5:F24 arasındaki değerleri topla ve bu değerleri bölerek ortalamasını bul
ORTALAMA_AL(E5 : P24; "dolu"; "G5:G24") ===>> E5 : P24 arasında tüm satırları dolu olan satır sayısını, G5:G24 arasındaki değerleri topla ve bu değerleri bölerek ortalamasını bul


BARAN.webp
 

Ekli dosyalar

Moderatörün son düzenlenenleri:
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
 
Üst