• DİKKAT

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

Hücre değerine bağlı sayfayı gizleme veya gösterme

ptcsite

Altın Üye
Katılım
8 Nisan 2016
Mesajlar
139
Excel Vers. ve Dili
M.OFFICE 2021 TR 64 Bit
Arkadaşlar merhaba ben makroya yeni yeni ısınıyorum da araştırarak toplama bilgisara gibi kodları bir araya getirdim ve şöyle bir kod yazdım.


Sub personeldurumu()
If Worksheets("Sayfa1").Range("E26") = 1 Then
Sheets("Personel").Visible = True
Sheets("Personel(2)").Visible = False
Sheets("Personel(3)").Visible = False
Else
If Worksheets("Sayfa1").Range("E26") = 2 Then
Sheets("Personel").Visible = True
Sheets("Personel(2)").Visible = True
Sheets("Personel(3)").Visible = False
Else
If Worksheets("Sayfa1").Range("E26") = 3 Then
Sheets("Personel").Visible = True
Sheets("Personel(2)").Visible = True
Sheets("Personela(3)").Visible = True
Else
Sheets("Personel").Visible = True
Sheets("Personel(2)").Visible = False
Sheets("Personel(3)").Visible = False
End If
End If
End If
End Sub

Burdaki amaç
1. önergede : Sayfa1 sayfası E26 hücresindeki değer 1 olursa Personel sayfası göster durumunda, Personel(2) ve Personel(3) sayfaları ise gizle'de kalsın...

2. önergede : Sayfa1 sayfası E26 hücresindeki değer 2 olursa Personel sayfasını ve Personel(2) sayfasını göster. Personel(3) sayfası ise gizle'de kalsın...

3. önergede : Sayfa1 sayfası E26 hücresindeki değer 3 olursa bütün sayfaları göster.

Değilse ;
1. önergedeki dursun...

demek istedim... Ama kodu module yapıştırıp deniyorum sayfalar gizlenmiyor :)))
Yardımcı olabilirmisiniz. Olamasanız da canınız sağolsun :)
 
Son düzenleme:
Merhaba, aşağıdaki kodu Sayfa1'in kod bölümüne yapıştırıp deneyin.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next
If Range("E26") = 1 Then
Sheets("Personel").Visible = True
Sheets("Personel(2)").Visible = False
Sheets("Personel(3)").Visible = False
End If

If Range("E26") = 2 Then
Sheets("Personel").Visible = True
Sheets("Personel(2)").Visible = True
Sheets("Personel(3)").Visible = False
End If

If Range("E26") = 3 Then
Sheets("Personel").Visible = True
Sheets("Personel(2)").Visible = True
Sheets("Personel(3)").Visible = True
End If

If Range("E26") < 1 Or Range("E26") >3 Then
Sheets("Personel").Visible = True
Sheets("Personel(2)").Visible = False
Sheets("Personel(3)").Visible = False
End If

End Sub
 
Son düzenleme:
Merhaba, aşağıdaki kodu Sayfa1'in kod bölümüne yapıştırıp deneyin.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next
If Range("E26") = 1 Then
Sheets("Personel").Visible = True
Sheets("Personel(2)").Visible = False
Sheets("Personel(3)").Visible = False
End If

If Range("E26") = 2 Then
Sheets("Personel").Visible = True
Sheets("Personel(2)").Visible = True
Sheets("Personel(3)").Visible = False
End If

If Range("E26") = 3 Then
Sheets("Personel").Visible = True
Sheets("Personel(2)").Visible = True
Sheets("Personel(3)").Visible = True
End If

If Range("E26") > 3 Then
Sheets("Personel").Visible = True
Sheets("Personel(2)").Visible = False
Sheets("Personel(3)").Visible = False
End If

End Sub

Nasıl bu kadar zeki olabiliyorsunuz anlamıyorum :) Çok pratik oldu... Çok sağolun. Çalışıyor komut.... Süpersiniz.
 
Merhaba,
Alternatif olsun.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim s1 As Worksheet, s2 As Worksheet, s3 As Worksheet

Set s1 = Sheets("Personel")
Set s2 = Sheets("Personel (2)")
Set s3 = Sheets("Personel (3)")
If Not Intersect(Target, [E26]) Is Nothing Then
    Select Case Target.Value
        Case 1
            s1.Visible = True
            s2.Visible = False
            s3.Visible = False
        Case 2
            s1.Visible = True
            s2.Visible = True
            s3.Visible = False
        Case 3
            s1.Visible = True
            s2.Visible = True
            s3.Visible = True
            
    End Select
End If
End Sub
 
Geri
Üst