• DİKKAT

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

Makroda dolu satır sayısı belirlemek?

Katılım
14 Şubat 2011
Mesajlar
24
Excel Vers. ve Dili
2007
Merhaba,,

Elimde şu şekilde bir makro var. Burada "Toplam Satir=9" yazan yerdeki 9 rakamı A stünündaki dolu hücre sayısını ifade ediyor. Bu sayıyı her defasında elle değiştirmem gerekiyor. Excel'in bunu otomatik olarak sayabilmesi için makroya ekleyeceğimiz bir komut satırı varmıdır?

Kod:
Sub Makro1()
DigerSatir = 1
  ToplamSatir = 9
  Sayfa2.Cells(DigerSatir, 1).Value = Sayfa1.Cells(1, 1).Value
  Sayfa2.Cells(DigerSatir, 2).Value = Sayfa1.Cells(1, 2).Value
  For Satir = 2 To ToplamSatir
    If Sayfa1.Cells(Satir, 1).Value = Sayfa1.Cells(Satir - 1, 1).Value Then
      Sayfa2.Cells(DigerSatir, 2).Value = Sayfa2.Cells(DigerSatir, 2).Value & ", " & Sayfa1.Cells(Satir, 2).Value
    Else
      DigerSatir = DigerSatir + 1
      Sayfa2.Cells(DigerSatir, 1).Value = Sayfa1.Cells(Satir, 1).Value
      Sayfa2.Cells(DigerSatir, 2).Value = Sayfa1.Cells(Satir, 2).Value
    End If
  Next
End Sub

Şimdiden teşekkürler..
 
Merhaba,,

Elimde şu şekilde bir makro var. Burada "Toplam Satir=9" yazan yerdeki 9 rakamı A stünündaki dolu hücre sayısını ifade ediyor. Bu sayıyı her defasında elle değiştirmem gerekiyor. Excel'in bunu otomatik olarak sayabilmesi için makroya ekleyeceğimiz bir komut satırı varmıdır?

Kod:
Sub Makro1()
DigerSatir = 1
  ToplamSatir = 9
  Sayfa2.Cells(DigerSatir, 1).Value = Sayfa1.Cells(1, 1).Value
  Sayfa2.Cells(DigerSatir, 2).Value = Sayfa1.Cells(1, 2).Value
  For Satir = 2 To ToplamSatir
    If Sayfa1.Cells(Satir, 1).Value = Sayfa1.Cells(Satir - 1, 1).Value Then
      Sayfa2.Cells(DigerSatir, 2).Value = Sayfa2.Cells(DigerSatir, 2).Value & ", " & Sayfa1.Cells(Satir, 2).Value
    Else
      DigerSatir = DigerSatir + 1
      Sayfa2.Cells(DigerSatir, 1).Value = Sayfa1.Cells(Satir, 1).Value
      Sayfa2.Cells(DigerSatir, 2).Value = Sayfa1.Cells(Satir, 2).Value
    End If
  Next
End Sub

Şimdiden teşekkürler..

Merhaba
Kodun ilgili yerini şu şekilde değiştirip denermisiniz
ToplamSatir = [a65536].End(3).Row
 
Teşekkürler.. Bu şekilde yapınca işe yaradı fakat 65.000 satırdan fazla olan excellerde komut çalışmıyor. onun için nasıl bi değişiklik yapmak gerekir?
 
Teşekkürler.. Bu şekilde yapınca işe yaradı fakat 65.000 satırdan fazla olan excellerde komut çalışmıyor. onun için nasıl bi değişiklik yapmak gerekir?

Merhaba

Bu şekilde deneyiniz.
Kod:
Sub sonsat()
srm = Application.Version
If srm < 12 Then
ss1 = Range("a65536").End(3).Row
Else:
ss1 = Range("a1048576").End(3).Row
End If
MsgBox ss1
End Sub
 
Numan bey çok teşekkür ederim şuan kod sorunsuz çalışıyor, Süleyman bey benim makroda da If döngüsü olduğu için sizin verdiğiniz kod çalışmadı sanırım.

Yalnız şöyle bir durum var. bu makroyu normal bir şekilde çalıştırınca çalışıyor, fakat araç çubuğuna buton olarak eklediğimde çalışmıyor. Bu konu hakkında bilgisi olan varmı acaba?
 
Numan bey çok teşekkür ederim şuan kod sorunsuz çalışıyor, Süleyman bey benim makroda da If döngüsü olduğu için sizin verdiğiniz kod çalışmadı sanırım.

Yalnız şöyle bir durum var. bu makroyu normal bir şekilde çalıştırınca çalışıyor, fakat araç çubuğuna buton olarak eklediğimde çalışmıyor. Bu konu hakkında bilgisi olan varmı acaba?

Kolay gelsin
 
Geri
Üst