1. sayfa (Toplam 1 sayfa)
Sıra numarası verdirme
Gönderilme zamanı: 16 Eki 2020, 11:05
gönderen nadir
İyi günler...
B sütunundaki satırların dolu olmasına bakarak A sütununda sıra numarası makro ile nasıl verdirebiliriz?
Sub siranover
...B sütununun dolu olduğu satıra kadar (değişken)
... A sütununda sıra no verecek kod
end sub
Re: Sıra numarası verdirme
Gönderilme zamanı: 19 Eki 2020, 17:02
gönderen Hamurcu
Merhaba,
Açtığınız Çalışma Kitabının ilk sayfasındaki (Çizelge1) B sütununa ilk satırından son satırına kadar bakıp, eğer boş değilse A sütununa sıradaki numarayı vermek için aşağıdaki kodu kullanabilirsiniz.
İyi çalışmalar.
Kod: Tümünü seç
Sub DoluSatirlariNumaralandir()
Dim Kitap As Object
Kitap = ThisComponent
Dim Sayfa As Object
Sayfa = Kitap.getSheets().getByIndex(0) ' Buradaki 0 ilk sayfayı tanımlar
Dim SatirSayisi As Long
SatirSayisi=Sayfa.getCellRangeByName("B:B").Rows.Count ' B:B ibaresi B sütununun tamamı demektir
SatirNo=0
For r = 0 To SatirSayisi-1 Step 1
Hucre=Sayfa.getCellByPosition( 0, r ) ' Önce A sütunundaki satırda daha önceden yapılmış bir numaralandırma varsa onu silemk gerekecektir. Bu sebeple A sütunundaki ilgili hücrenin adresi öğrenilir
Hucre.String="" ' Öğrenilen hücreye yokluk/boşluk girilir ve bu sayede bir önceki numaralandırma silinmiiş olur
Hucre=Sayfa.getCellByPosition( 1, r ) ' Sonra B sütunundaki hücrenin adresi öğrenilir
If Hucre.Type = com.sun.star.table.CellContentType.EMPTY Then Goto Atla ' Eğer bu hücre boşsa aşağıdaki satırlar ATLANIR
SatirNo=SatirNo+1
Hucre=Sayfa.getCellByPosition( 0, r ) ' A sütununun adresi öğrenilir
Hucre.value=SatirNo ' Sıradaki numara verilir
Atla:
Next r
End Sub
Re: Sıra numarası verdirme
Gönderilme zamanı: 23 Eki 2020, 09:55
gönderen nadir
Sayın Hamurcu,
Kod çalışıyor, fakat durmuyor. Devamlı çılışıyor gözüküyor. Kodda hata mı var acaba.
Bir de sıra numarasını A1'den itibaren veriyor. Sıra numarası A2'den başlayacak.
Re: Sıra numarası verdirme
Gönderilme zamanı: 23 Eki 2020, 10:29
gönderen Hamurcu
Merhaba,
Kod ilk hücreden son hücreye kadar çalışacak şekilde.
Eğer belirli bir aralıkta çalışşın istiyorsan aşağıdaki kısmı düzenlemen gerekir.
Kod: Tümünü seç
SatirSayisi=Sayfa.getCellRangeByName("B:B").Rows.Count ' B:B ibaresi B sütununun tamamı demektir
Örneğin "B2:B250" gibi.
Sıra numarasının A1'den başlaması gayet normal çünkü biz B sütununun tamamına baktırdığımız için karşılığında A sütununun da tamamını numaralandıracaktır.
Yukarıdaki düzenlemeyi yaparsan istediğin olacaktır.
İyi çalışmalar.
Re: Sıra numarası verdirme
Gönderilme zamanı: 23 Eki 2020, 10:40
gönderen nadir
Maalesef "B2:B250" yaptım, yine A1'den sıra numarası verdi.
Güncelleme: For satırını "For 1" değiştirince düzeldi, tamamdır.