Çift Tıklama ile makro tetikleme için destek

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,791
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba Arkadaşlar,
B4:B5 arası çift tıklandığında hizasındaki A hücresinde adının soldan ilk harfi olan sayfalar görünür oluyor
C4:C5 arası çift tıklandığında hizasındaki A hücresinde adının soldan ilk harfi olan sayfalar gizlenmiş oluyor
A7:A15 arası dinamik
B7:B15 arası çift tıklandığında hizasındaki A hücresinde adı bulunan sayfa görünür oluyor
C7:C15 arası çift tıklandığında hizasındaki A hücresinde adı bulunan sayfa gizlenmiş oluyor
Bu işlemler için 22 farklı makro kullandım. Daha pratik hale getirmenin bir yolu var mıdır?
Saygılarımla
 

Ekli dosyalar

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
Sayfanın kod kısmına;
Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    Dim aK As Boolean
    If Target.Column = 2 Then aK = True Else aK = False
    If Target.Column = 2 Or Target.Column = 3 Then
        If Target.Row = 4 Or Target.Row = 5 Then
            Call sayfaGosterGizle(Cells(Target.Row, 1).Value, aK)
        ElseIf Target.Row > 6 And Target.Row < 16 Then
            Call sayfaGosterGizle(Cells(Target.Row, 1).Value, aK)
        End If
    End If
End Sub
Module
Kod:
Sub sayfaGosterGizle(s As String, aK As Boolean)
    Dim i
    For i = 1 To Worksheets.Count
        If Sheets(i).Name Like s & "*" Then Sheets(i).Visible = aK
    Next i
    Sheets("Data").Select
End Sub
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,791
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Veysel Emre Hocam,
Çok teşekkür ederim, beni büyük bir yükten kurtardınız
Kod:
ElseIf Target.Row > 6 And Target.Row < 16 Then
bu satırdaki 16 yı otomatik algılayabilir mi?
Saygılarımla
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,791
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Otomatik algıladı, tekrar teşekkür ederim.
Saygılarımla
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    If Target.Column = 2 Or Target.Column = 3 Then
        Dim aK As Boolean, s$
        If Target.Column = 2 Then aK = True Else aK = False
        Select Case Target.Row
            Case 4, 5: s = Cells(Target.Row, 1).Value & "*"
            Case Is > 6: s = Cells(Target.Row, 1).Value
        End Select
        If s <> "" Then Call sayfaGosterGizle(s, aK)
    End If
End Sub
Kod:
Sub sayfaGosterGizle(s As String, aK As Boolean)
    If s <> "" Then
        If InStr(s, "*") Then
            Dim i
            For i = 1 To Worksheets.Count
                If Sheets(i).Name Like s Then Sheets(i).Visible = aK
            Next i
        Else
            If Evaluate("ISREF('" & s & "'!A1)") = True Then Sheets(s).Visible = aK
        End If
    End If
    Sheets("Data").Select
End Sub
 
Son düzenleme:

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,791
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Veysel Emre Hocam,
Tekrar çok teşekkür ederim, sayfa sayısını sayarak olmuş.
Saygılarımla
 
Üst