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
Merhabalar,
Ekli dosyanın Malzeme Giriş isimli sayfasında kod bulunmaktadır. Bu kod aldığı değere göre sağındaki hücreleri gizlemektedir.
Soru1: Teklif sayfasının H1 sütunundaki değerin, Malzeme Giriş sayfasındaki H1 sütunundaki değeri alarak sağdaki hücrelerin ona göre açılıp kapanmasını sağlayabilir miyiz?
Soru2: Teklif sayfasında bu işlem yapıldıktan sonra aynı sayfanın devamında bulunan satırların G sütunda bulunan ve değeri sıfırdan büyük olan değerlerin listelenmesini diğerlerinin gizlenmesini saylayabilir miyiz?
Desteğiniz ve emeğiniz için teşekkür eder kolaylıklar dilerim.
 

Ekli dosyalar

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Deneyiniz.
Kod:
Sub Test()
    
    Dim S1 As Worksheet, Wf As WorksheetFunction
    Dim s_gizle As String, son_sut As String, i As Long, c As Range
    
    Set S1 = Sheets("Malzeme Girişi")
    Set Wf = WorksheetFunction
    
    Application.ScreenUpdating = False
    Sheets("TEKLİF").Select
    
    [H1] = S1.[H1]
    If [H1] > 0 Then
        Cells.EntireColumn.Hidden = False
        Cells.EntireRow.Hidden = False
        s_gizle = Split(Cells(1, Wf.Match([H1], Rows(2), 0) + 1).Address, "$")(1)
    End If
    son_sut = Split(Cells(1, Columns.Count).End(xlToLeft).Address, "$")(1)

    Columns(s_gizle & ":" & son_sut).EntireColumn.Hidden = True

    For i = 4 To Cells(Rows.Count, "G").End(xlUp).Row
        If Cells(i, "G") <= 0 Then
            If c Is Nothing Then
                Set c = Rows(i)
            Else
                Set c = Union(c, Rows(i))
            End If
        End If
    Next i
    If Not c Is Nothing Then c.EntireRow.Hidden = True
    
    Application.ScreenUpdating = True
    
    
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
Soru1: Teklif sayfasının H1 sütunundaki değerin, Malzeme Giriş sayfasındaki H1 sütunundaki değeri alarak sağdaki hücrelerin ona göre açılıp kapanmasını sağlayabilir miyiz?
Teklif sayfasındaki H1 sütunu Malzeme Girişi sayfasındaki H1 sütunundaki değeri alıp (Teklif sayfasındaki sütunları gizlediği gibi) gizlemiyor.
Soru2: Teklif sayfasında bu işlem yapıldıktan sonra aynı sayfanın devamında bulunan satırların G sütunda bulunan ve değeri sıfırdan büyük olan değerlerin listelenmesini diğerlerinin gizlenmesini saylayabilir miyiz?
Yukarıdaki işlemi yaptıktan sonra G4:G100 arasında bulunan ve değeri sıfırdan büyük satırları gösterip değeri sıfır olan satırları gizlemiyor.
Ayrıca bunları da sayfanın kod görüntüle bölümünde Worksheet_Change olarak mı kaydetmeliyim?

Desteğiniz ve emeğiniz için teşekkür eder kolaylıklar dilerim.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Yazdıklarınızı kodlar yapıyor. Yalnız ben kodları Modul için yazmıştım yani buton ile çalıştırmanız gerekir.
Siz sayfa aktif olduğunda çalışmasını istiyorsanız aşağıdaki kodları Teklif sayfasının kod bölümüne kopyalayınız. Kodlar sayfa aktif olduğunda çalışır. Kopyalamadan sonra farklı sayfaya geçip tekrar Teklif sayfasına girerek sonuçları gözlemleyiniz.

Kod:
Private Sub Worksheet_Activate()

    Dim S1 As Worksheet, Wf As WorksheetFunction
    Dim s_gizle As String, son_sut As String, i As Long, c As Range

    Set S1 = Sheets("Malzeme Girişi")
    Set Wf = WorksheetFunction

    Application.ScreenUpdating = False
    'Sheets("TEKLİF").Select

    [H1] = S1.[H1]
    If [H1] > 0 Then
        Cells.EntireColumn.Hidden = False
        Cells.EntireRow.Hidden = False
        s_gizle = Split(Cells(1, Wf.Match([H1], Rows(2), 0) + 1).Address, "$")(1)
    End If
    son_sut = Split(Cells(1, Columns.Count).End(xlToLeft).Address, "$")(1)

    Columns(s_gizle & ":" & son_sut).EntireColumn.Hidden = True

    For i = 4 To Cells(Rows.Count, "G").End(xlUp).Row
        If Cells(i, "G") <= 0 Then
            If c Is Nothing Then
                Set c = Rows(i)
            Else
                Set c = Union(c, Rows(i))
            End If
        End If
    Next i
    If Not c Is Nothing Then c.EntireRow.Hidden = True

    Application.ScreenUpdating = True

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
Hocam sağol
Emeğine sağlık.
 
Üst