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

numan şamil

Destek Ekibi
Destek Ekibi
Katılım
27 Ocak 2011
Mesajlar
1,231
Excel Vers. ve Dili
Ofis 2013 Türkçe
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
 
Katılım
14 Şubat 2011
Mesajlar
24
Excel Vers. ve Dili
2007
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?
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
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 şamil

Destek Ekibi
Destek Ekibi
Katılım
27 Ocak 2011
Mesajlar
1,231
Excel Vers. ve Dili
Ofis 2013 Türkçe
Katılım
14 Şubat 2011
Mesajlar
24
Excel Vers. ve Dili
2007
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 şamil

Destek Ekibi
Destek Ekibi
Katılım
27 Ocak 2011
Mesajlar
1,231
Excel Vers. ve Dili
Ofis 2013 Türkçe
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
 
Üst