• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

boş aralığın makro ile ifade edilmesi

Katılım
14 Ocak 2008
Mesajlar
176
Excel Vers. ve Dili
2010 türkçe
merhabalar, b kolonunda veriler var ve bu verilerin bir kısmında boşluk var, bu boşluğun ilk satır sayısı ve boşluk olan son hücre satır sayısını kod ile nasıl ifade edebiliriz. örneğin

sonA = Sheets("SAYFA1").Cells(Rows.Count, "A").End(xlUp).Row

(A kolonundaki son dolu veri olan hücreyi getiriyor,)
bunun gibi,
B kolonundaki boş hücrelerin ilkini veB kolonundaki boş hücrelerin sonuncusunu getirmesini istiyorum. örnekte olduğu gibi

ilkboşhucre = (B8) B SÜTÜNDEKİ BOŞ ARALIĞIN İLK SATIRI,
sonboşhucre= (B16) B SÜTÜNDEKİ BOŞ ARALIĞIN İLK SATIRI,
 

Ekli dosyalar

Kod:
Sub IlkSonBosHucre()
    Columns(2).SpecialCells(xlCellTypeBlanks).Select
    ilk = Split(Selection.Address, ":")(0)
    son = Split(Selection.Address, ":")(1)
    MsgBox "İlk Boş Hücre Adresi: " & ilk
    MsgBox "Son Boş Hücre Adresi: " & son
End Sub
 
emeğiniz için teşekkür ederim, de şöyle yapılabilirmi acaba


ilk = Columns(2).SpecialCells(xlCellTypeBlanks) (ilk satırı bulan komut eklense)
son = Columns(2).SpecialCells(xlCellTypeBlanks.End.row) son satırı end.row gibi kod düzenlenebiliyormu acaba

yani aralık seçtirmeden yaptırmak istesem
 
Böyle olabilir herhalde.
Kod:
ilk = Columns(2).SpecialCells(xlCellTypeBlanks).Row
son = Columns(2).SpecialCells(xlCellTypeBlanks).Count + ilk - 1
 
sonJ = Sheets("GİRİŞ").Cells(Rows.Count, "J").End(xlUp).Row
sonG = Sheets("GİRİŞ").Cells(Rows.Count, "G").End(xlUp).Row


BURAYI SİZİN YAZDIĞINIZ KODLA UYGUNLAŞTIRMAYA ÇALIŞIYORUM AMA, YAPAMADIM. DOSYAYI DA EKLEDİM.
MAKSADIM GİRİŞ SAYFASINDAKİ J SÜTÜNUNDA BOŞ OLAN HÜCRENİN YANINDAKİ (G SÜTÜNÜNDEKİ BİLGİLERİ SAYMASI,) DİĞER SAYFADAKİ İLGİLİ HÜCRELERE SAYIP AKTARMASI, DAHA ÖNCEDEN J SÜTUNUNDAKİ SON DOLU SATIRDAN İTİBAREN SAYIYOR ANCAK BAZI DURUMLARDA J SÜTUNUNDA BOŞLUK OLMASI GEREKEN SATIRLAR OLUYOR,
 

Ekli dosyalar

teşekkür ederim. çok sağolun işimi gördü de. birşey daha sormak istedim.

formül çalışmadı,

=TOPLA.ÇARPIM((GİRİŞ!H4:H23="<>")*(GİRİŞ!J4:J23=""))
yani j sütununa göre h sütünundaki dolu olanları saydırmak istedim.
 
Kod:
=TOPLA(EĞER($G$4:$G$21="Ş.İÇİ";EĞER($J$4:$J$21="";1;0);0))
ctrl+shift+enter tuşlarına basmayı unutmayın.
 
YA ÜSTAD, formülü makroya çevirmek istiyorum ama yapamıyorum.
 

Ekli dosyalar

Verdiğim formül ve makroyu incelemediniz galiba. Excel sayfası içinde, formül yerine makro kodunu kullanmışsınız. Verdiğim örnekleri dikkatlice inceleyin, yapabileceğinizi zannediyorum.
 
sizin makro örneğinin üçüncü satırı boş olan satırları saydırıyor, dolu olanları saydırmıyor,
gönderdiğim örnekte ise, örnek üzerinde gösterilmesi açısından hücreye yazdım, o yazdığım makro kodu çalışmıyor, [SumProduct((GİRİŞ!G4:G20="<>")*(GİRİŞ!J4:J20=""))] (yani j4-j20 arasındaki boş hücrelerin yanındaki G sütununundaki dolu olan hücreleri say) makro olarak doğru sonuçları getirmiyor. formülde de {=TOPLA(EĞER($G$4:$G$21="Ş.İÇİ";EĞER($J$4:$J$21="";1;0);0))}
BUNU {=TOPLA(EĞER($G$4:$G$21="<>";EĞER($J$4:$J$21="";1;0);0))} olarak değiştirdiğimde dolu olan hücreleri saymıyor,
 
Eğer bu da olmadı derseniz, ben sizi anlamıyorum demektir ve bundan sonrası için başka bir arkadaştan destek almayı deneyin. Formüllü bir çözüm istiyorsanız da aynı yolu izleminizi öneririm.
Kod:
'Soru : j4-j20 arasındaki boş hücrelerin yanındaki G sütununundaki dolu olan hücreleri say)
Sub Say()
Dim Adres As Range
    For i = 1 To [a65536].End(3).Row
        If Cells(i, "j") = "" Then
        If Cells(i, "g") <> "" Then
            s = s + 1
        End If
        End If
    Next
    Set Adres = Application.InputBox(prompt:="Bir Hücre Seçin", Type:=8)
    Adres = s
End Sub
 
emeğiniz için teşekkür ederim.
 
Geri
Üst