• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Koşula Göre Satırları Gruplayarak Gizlemek

Katılım
14 Haziran 2007
Mesajlar
142
Excel Vers. ve Dili
2007
Merhabalar;
Sayın üstadlar, üzerinde çalıştığım bir hesaplama tablosunda değeri 0 olan bir hücre için, ör. h4 satırı 0 olduğu noktada a3:h7 satırlarının ve bunun gibi grup olan satırlarda 0 olan değerleri gizlemeye çalışıyorum.
Detayını örnek tabloda vermeye çalıştım, şimdiden yardımlarınız için teşekkür ederim....
 

Ekli dosyalar

Merhaba,

Kod:
Sub Gizle()
    For i = 1 To [A65536].End(3).Row
        If Cells(i, "a") = Range("B1") And Cells(i, "h") = 0 Then
            Rows(i - 2 & ":" & i + 3).EntireRow.Hidden = True
        End If
    Next i
End Sub

Denermisiniz.

.
 
Merhaba,
Kod:
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
For x = 76 To 4 Step -6
If Cells(x, "h") = 0 Then Rows(x - 2 & ":" & x + 3).EntireRow.Hidden = True
Next
Application.EnableEvents = True
End Sub
Kod:
Sub göster()
Application.EnableEvents = False
Rows("1:76").EntireRow.Hidden = False
Application.EnableEvents = True
End Sub
 

Ekli dosyalar

Yardımlarınız için çok teşekkür ederim. Tam istediğim gibi bir çalışma oldu, sağolun.....
 
hocalarım burda yapmış olduğunuz kodları anlatırmısınız? kodlardan ziyade bende yapılış mantığını öğrenmek isterdim.
 
Merhaba,

Kısaca açıklamaya çalışayım.


For i = 1 To [A65536].End(3).Row

1. satırdan ( [A65536].End(3).Row ) A sütunundaki son dolu satıra kadar sırayla teker teker döngüye girer yani her satır için hesap yapar.

If Cells(i, "a") = Range("B1") And Cells(i, "h") = 0 Then

buradaki i yukarıda döngüye giren satırlardır. "a" ise a sütunudur.

eğer a sütununda döngüye giren satırlardaki değerler b1 hücresine eşit ve h sütununda döngüye giren satırlardan değeri sıfır olan hücreler varsa,

Rows(i - 2 & ":" & i + 3).EntireRow.Hidden = True

i-2 uyan şatırdan 2 satır yukarısı ile i + 3 uyan satırdan 3 satır aşağısını kapsayan bölümü EntireRow.Hidden = True gizle demek.

Sayın leumruk'un,

For x = 76 To 4 Step -6

76 satırdan geriye doğru 6 satır atlayarak 4. satıra kadar olan satırları döngüye sokarak işlem yapar ve eğer olan şartı sağlayınca gizler.

Private Sub Worksheet_Calculate() olmasındaki neden kodun formülün değer üretmesi ile çalışmasını sağlar

Göster koduda.Gizlenen satırları gösterir.

.
 
Merhaba,

Kısaca açıklamaya çalışayım.


For i = 1 To [A65536].End(3).Row

1. satırdan ( [A65536].End(3).Row ) A sütunundaki son dolu satıra kadar sırayla teker teker döngüye girer yani her satır için hesap yapar.

If Cells(i, "a") = Range("B1") And Cells(i, "h") = 0 Then

buradaki i yukarıda döngüye giren satırlardır. "a" ise a sütunudur.

eğer a sütununda döngüye giren satırlardaki değerler b1 hücresine eşit ve h sütununda döngüye giren satırlardan değeri sıfır olan hücreler varsa,

Rows(i - 2 & ":" & i + 3).EntireRow.Hidden = True

i-2 uyan şatırdan 2 satır yukarısı ile i + 3 uyan satırdan 3 satır aşağısını kapsayan bölümü EntireRow.Hidden = True gizle demek.

Sayın leumruk'un,

For x = 76 To 4 Step -6

76 satırdan geriye doğru 6 satır atlayarak 4. satıra kadar olan satırları döngüye sokarak işlem yapar ve eğer olan şartı sağlayınca gizler.

Private Sub Worksheet_Calculate() olmasındaki neden kodun formülün değer üretmesi ile çalışmasını sağlar

Göster koduda.Gizlenen satırları gösterir.

.

Parmaklarına ve emeklerine sağlık çok güzel bir anlatım olmuş.....
 
Geri
Üst