Satır Gizle

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

Satır Gizle

Mesaj gönderen nadir »

A3:A102 arasındaki boş satırları gizlemek ve yazdırma işi bittikten sonra gösterme kodu gerekiyor.

sub gizle_yazdir
...A3:A102 arası boş satırlar gizlenecek.
....yazdırma (kaydetme) işlmi PDF olarak yapılacak.
....gizlenen satırlar gösterilecek
end sub
Kullanıcı avatarı
Hamurcu
Mesajlar: 233
Kayıt: 06 Ağu 2012, 00:14
İşletim Sisteminiz: Windows 10
LibreOffice Sürümü: 7.x
Konum: İstanbul
İletişim:

Re: Satır Gizle

Mesaj gönderen Hamurcu »

Merhaba,

A3:A102 arasındaki boş olan satırları gizlemek için aşağıdaki kodu kullanabilirsiniz.

Kod: Tümünü seç

Sub BosSatirlariGizle()

    Dim Kitap As Object
    Kitap =  ThisComponent

    Dim Sayfa As Object
    Sayfa = Kitap.getSheets().getByIndex(0)

    Dim SatirSayisi As Long
    SatirSayisi=Sayfa.getCellRangeByName("A3:A102").Rows.Count

    SatirNo=0

    For r = 2 To SatirSayisi-1 Step 1
    
        
        Hucre=Sayfa.getCellByPosition( 0, r )
        
        If Hucre.Type = com.sun.star.table.CellContentType.EMPTY Then
          
          Sayfa.Rows.getByIndex(r).IsVisible=False

        End If
        
    Next r

End Sub
Daha önce gizlenmiş olan satırları tekrar görünür yapmak için aşağıdaki kodu kullanabilirsiniz.

Kod: Tümünü seç

Sub GizliSatirlariGoster()

    Dim Kitap As Object
    Kitap =  ThisComponent

    Dim Sayfa As Object
    Sayfa = Kitap.getSheets().getByIndex(0)

    Dim SatirSayisi As Long

    SatirSayisi=Sayfa.getCellRangeByName("A3:A102").Rows.Count

    For r = 2 To SatirSayisi-1 Step 1
    
      Sayfa.Rows.getByIndex(r).IsVisible=True
        
    Next r

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

Re: Satır Gizle

Mesaj gönderen nadir »

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

Re: Satır Gizle

Mesaj gönderen nadir »

Hocam, satır gizleme kodunda; hücre formüllü ise formüllü boş hücreleri dolu algılıyor. Bu durumda kodu nasıl revize etmek gerekiyor.

=EĞER($FATURA.D10="";"";$FATURA.D10) bu formülde D10 boş gözüküyorsa boş hücre olarak görülsün. (A3:A102 arası)
Kullanıcı avatarı
Hamurcu
Mesajlar: 233
Kayıt: 06 Ağu 2012, 00:14
İşletim Sisteminiz: Windows 10
LibreOffice Sürümü: 7.x
Konum: İstanbul
İletişim:

Re: Satır Gizle

Mesaj gönderen Hamurcu »

Formüllü hücreler sonuçta doludur ve bu sebeple dolu algılaması gayet normal.

Senin söylemek istediğin sanırım formul sonuç üretmediği durumlarda (Yani boşluk veya 0) olan hücreleri boş saymasını mı istiyorsun?

Eğer durum böyleyse makroyu aşağıdaki şekilde değiştirirsen olacaktır.

Kod: Tümünü seç

If Hucre.Type = com.sun.star.table.CellContentType.EMPTY Then
Yukarıdaki satırı aşağıdaki şekilde değitirin.

Kod: Tümünü seç

If ((Hucre.Type = com.sun.star.table.CellContentType.EMPTY) Or (Hucre.String = "")) Then
nadir
Mesajlar: 20
Kayıt: 14 Eyl 2020, 13:09
İşletim Sisteminiz: Windows 10
LibreOffice Sürümü: 7

Re: Satır Gizle

Mesaj gönderen nadir »

Hocam çok teşekkür ederim, istediğim buydu...
Cevapla