• DİKKAT

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

Dolu hücre saydırma.

Katılım
30 Ağustos 2009
Mesajlar
51
Excel Vers. ve Dili
Microsoft Office Excel 2007 Almanca
Merhaba,

Bir satırda arka arkaya gelen ve sayı değeri taşıyan hücreleri sayan bir makro yazmak ve bu makroyu bir buttona atamak istiyorum. Aşşagıdaki gibi bir kod yazdım.
Kod:
Private Sub CommandButton4.Click()
Dim x As Integer, t As Integer, i As Integer
x=0
t=1
i=1
While(IsNumeric(Cells (i+4, t+1) ) )

t=t+1
x=x+1

Wend

Range("B10").Value=x

Makro saymaya B5 hücresinden başlayıp, B6, B7 .... diye while aracılığıyla devam etmeli ve sayı değeri taşımayan bir hücreye denk gelene kadar durmamalı.(Boş hücre sayı olarak algılanmamalı) Sonunda bulunan x değeri B10 hücresine yazılmalı. Ama yazdığım kod "While(IsNumeric(Cells (i+4, t+1) )" bölümünde hata veriyor. İki saattir uğraşıyorum ama sebebi çözemedim. Yardımcı olabilirseniz sevinirim.
 
Merhaba,

Aşağıdaki kodu denermisiniz.

Kod:
Option Explicit
 
Sub SAYI_SAY()
    Dim Satır As Long, Say As Long
    
    Satır = 5
    
    While IsNumeric(Cells(Satır, "B"))
        If Cells(Satır, "B") <> "" Then
            Say = Say + 1
        End If
        Satır = Satır + 1
    Wend
    
    Range("B10") = Say
End Sub
 
Alternatif.:cool:
Kod:
Sub SAYI_SAY_59()
    Dim Satır As Long, Say As Long, sat As Long, hcr As Range
    sat = Cells(65536, "B").End(xlUp).Row
    If sat < 5 Then Exit Sub
    Satır = 5
    Range("B5:B" & sat).SpecialCells (xlCellTypeConstants)
    For Each hcr In Range("B5:B" & sat).SpecialCells(xlCellTypeConstants)
        If IsNumeric(hcr.Value) Then
            Say = Say + 1
        End If
        Satır = Satır + 1
    Next
    Range("B10") = Say
End Sub
 
Tesekkürler deniyorum hemen:)
 
Geri
Üst