Sıra numarası verdirme

Cevapla
nadir
Mesajlar: 28
Kayıt: 14 Eyl 2020, 13:09
İşletim Sisteminiz: Windows 10
LibreOffice Sürümü: 7

Sıra numarası verdirme

Mesaj 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
Kullanıcı avatarı
Hamurcu
Mesajlar: 265
Kayıt: 06 Ağu 2012, 00:14
İşletim Sisteminiz: Windows 10/11 - Pardus Linux
LibreOffice Sürümü: 7.x

Re: Sıra numarası verdirme

Mesaj 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
nadir
Mesajlar: 28
Kayıt: 14 Eyl 2020, 13:09
İşletim Sisteminiz: Windows 10
LibreOffice Sürümü: 7

Re: Sıra numarası verdirme

Mesaj 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.
Kullanıcı avatarı
Hamurcu
Mesajlar: 265
Kayıt: 06 Ağu 2012, 00:14
İşletim Sisteminiz: Windows 10/11 - Pardus Linux
LibreOffice Sürümü: 7.x

Re: Sıra numarası verdirme

Mesaj 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.
nadir
Mesajlar: 28
Kayıt: 14 Eyl 2020, 13:09
İşletim Sisteminiz: Windows 10
LibreOffice Sürümü: 7

Re: Sıra numarası verdirme

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