Aynı sayfada koşullu satır gizleme

firstmoon3434

Altın Üye
Katılım
26 Ağustos 2022
Mesajlar
11
Excel Vers. ve Dili
1997/2003 Türkçe
Altın Üyelik Bitiş Tarihi
28-08-2027
Merhaba,

Excel dosyasında bir stoklardan teklife kadar giden bir dosya hazırlıyorum. Forumlarda tek olarak buldum ancak çoklu kod çözümü gerekiyor. Zira tek kodlu çözümü koplayayıp çokladım ancak komutlarda hata yapıyorum bilmediğimden.
Sorunumu;
H114 'e "H" veya "h" yazdığımda 116 den ye kadar 152 dahil satırları arasını gizlemesini "E" veya "e" yazdığımda açılmasını,
H154 'e "H" veya "h" yazdığımda 156 den ye kadar 230 dahil satırları arasını gizlemesini "E" veya "e" yazdığımda açılmasını,
H232 'e "H" veya "h" yazdığımda 234 den ye kadar 301 dahil satırları arasını gizlemesini "E" veya "e" yazdığımda açılmasını,
H303 'e "H" veya "h" yazdığımda 305 den ye kadar 341 dahil satırları arasını gizlemesini "E" veya "e" yazdığımda açılmasını,
H343 'e "H" veya "h" yazdığımda 345 den ye kadar 412 dahil satırları arasını gizlemesini "E" veya "e" yazdığımda açılmasını,
H414 'e "H" veya "h" yazdığımda 416 den ye kadar 434 dahil satırları arasını gizlemesini "E" veya "e" yazdığımda açılmasını,
H436 'e "H" veya "h" yazdığımda 438 den ye kadar 557 dahil satırları arasını gizlemesini "E" veya "e" yazdığımda açılmasını,
H559 'e "H" veya "h" yazdığımda 561 den ye kadar 680 dahil satırları arasını gizlemesini "E" veya "e" yazdığımda açılmasını istiyorum ama muhtemelen komut hatası yapıyorum. Yardımcı olmanız mümkün mü? Teşekkür ederim.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,165
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Sayfanın kod kısmına kopyalayıp deneyin.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Satirlar As String
    If Not Intersect(Target, Range("H114, H154, H232, H303, H343, H414, H436, H559")) Is Nothing Then
        Select Case Target.Address(0, 0)
            Case "H114"
                Satirlar = "116:152"
            Case "H154"
                Satirlar = "156:230"
            Case "H232"
                Satirlar = "234:301"
            Case "H303"
                Satirlar = "305:341"
            Case "H343"
                Satirlar = "345:412"
            Case "H414"
                Satirlar = "416:434"
            Case "H436"
                Satirlar = "438:557"
            Case "H559"
                Satirlar = "561:680"
        End Select
       
        If UCase(Target.Text) = "H" Then
            Rows(Satirlar).EntireRow.Hidden = True
        ElseIf UCase(Target.Text) = "E" Then
            Rows(Satirlar).EntireRow.Hidden = False
        End If
    End If
End Sub
 
Son düzenleme:

firstmoon3434

Altın Üye
Katılım
26 Ağustos 2022
Mesajlar
11
Excel Vers. ve Dili
1997/2003 Türkçe
Altın Üyelik Bitiş Tarihi
28-08-2027
Tekrar merhaba,

Yukarıda belirttiğiniz koddan önce gelecek şekilde ve aynı sayfa için;

Eğer H1 sütunundaki hücreye 1 yazıldığında J 'den AB ye kadar (dahil) arası sütunları gizleyecek,
Eğer H1 sütunundaki hücreye 2 yazıldığında K 'den AB ye kadar (dahil) arası sütunları gizleyecek,
Eğer H1 sütunundaki hücreye 3 yazıldığında L 'den AB ye kadar (dahil) arası sütunları gizleyecek,
Eğer H1 sütunundaki hücreye 4 yazıldığında M 'den AB ye kadar (dahil) arası sütunları gizleyecek,
Eğer H1 sütunundaki hücreye 5 yazıldığında N 'den AB ye kadar (dahil) arası sütunları gizleyecek,
Eğer H1 sütunundaki hücreye 6 yazıldığında O 'den AB ye kadar (dahil) arası sütunları gizleyecek,
Eğer H1 sütunundaki hücreye 7 yazıldığında P 'den AB ye kadar (dahil) arası sütunları gizleyecek,
Eğer H1 sütunundaki hücreye 8 yazıldığında Q 'den AB ye kadar (dahil) arası sütunları gizleyecek,
Eğer H1 sütunundaki hücreye 9 yazıldığında R 'den AB ye kadar (dahil) arası sütunları gizleyecek,
Eğer H1 sütunundaki hücreye 10 yazıldığında S 'den AB ye kadar (dahil) arası sütunları gizleyecek,
Eğer H1 sütunundaki hücreye 11 yazıldığında T 'den AB ye kadar (dahil) arası sütunları gizleyecek,
Eğer H1 sütunundaki hücreye 12 yazıldığında U 'den AB ye kadar (dahil) arası sütunları gizleyecek,
Eğer H1 sütunundaki hücreye 13 yazıldığında V 'den AB ye kadar (dahil) arası sütunları gizleyecek,
Eğer H1 sütunundaki hücreye 14 yazıldığında W 'den AB ye kadar (dahil) arası sütunları gizleyecek,
Eğer H1 sütunundaki hücreye 15 yazıldığında X 'den AB ye kadar (dahil) arası sütunları gizleyecek,
Eğer H1 sütunundaki hücreye 16 yazıldığında Y 'den AB ye kadar (dahil) arası sütunları gizleyecek,
Eğer H1 sütunundaki hücreye 17 yazıldığında Z 'den AB ye kadar (dahil) arası sütunları gizleyecek,
Eğer H1 sütunundaki hücreye 18 yazıldığında AA 'den AB ye kadar (dahil) arası sütunları gizleyecek,
Eğer H1 sütunundaki hücreye 19 yazıldığında AB yi kadar (dahil) arası sütunları gizleyecek,
Eğer H1 sütunundaki hücreye 0 veya 20 yazıldığında sütunlar açık olacak.

ve bu kodlama yukarıda belirttiğiniz kodlamadan önce olacak şekilde nasıl yapılabilir?

Desteğiniz ve yardımlarınız için teşekkür ederim.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,165
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Satirlar As String

    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("H1")) Is Nothing Then
        If Target.Value = 0 Or Target.Value = 20 Then
            Columns.EntireColumn.Hidden = False
        ElseIf Target > 0 And Target < 20 Then

            Columns(Split(Columns(Target + 9).Address(0, 0), ":")(0) & ":AB").EntireColumn.Hidden = True
        End If
    ElseIf Not Intersect(Target, Range("H114, H154, H232, H343, H414, H436, H559")) Is Nothing Then
        Select Case Target.Address(0, 0)
            Case "H114"
                Satirlar = "116:152"
            Case "H154"
                Satirlar = "156:230"
            Case "H232"
                Satirlar = "234:301"
            Case "H303"
                Satirlar = "305:341"
            Case "H343"
                Satirlar = "345:412"
            Case "H414"
                Satirlar = "416:434"
            Case "H436"
                Satirlar = "438:557"
            Case "H559"
                Satirlar = "561:680"
        End Select
        
        If UCase(Target.Text) = "H" Then
            Rows(Satirlar).EntireRow.Hidden = True
        ElseIf UCase(Target.Text) = "E" Then
            Rows(Satirlar).EntireRow.Hidden = False
        End If
    End If
End Sub
 

firstmoon3434

Altın Üye
Katılım
26 Ağustos 2022
Mesajlar
11
Excel Vers. ve Dili
1997/2003 Türkçe
Altın Üyelik Bitiş Tarihi
28-08-2027
Muzaffer Ali Bey,

Teşekkür ederim. Emeğinize sağlık.
 
Üst