1 sayfadan 1. sayfa

Sıra numarası verdirme

İletiTarih: 16 Ekm 2020, 11:05
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

İletiTarih: 19 Ekm 2020, 17:02
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

İletiTarih: 23 Ekm 2020, 09:55
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

İletiTarih: 23 Ekm 2020, 10:29
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

İletiTarih: 23 Ekm 2020, 10:40
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.