Hücredeki ismin olduğu sayfayı açma

Katılım
27 Eylül 2023
Mesajlar
56
Excel Vers. ve Dili
Office 2016 Türkçe
Arkadaşlar kolay gelsin. Bir çalışma kitabında birçok sayfam var. Bu sayfaların içerisinde ay isimleri de mevcut. Ana sayfada B30 hücresinde OCAK yazıyorsa OCAK sayfasını, ŞUBAT yazıyorsa ŞUBAT sayfasını açmak için butona nasıl bir kod atamalıyım. Yani B30 hücresinde hangi sayfanın adı yazıyor ise tıkladığımda o sayfa açılacak.
 

tugkan

Altın Üye
Katılım
6 Kasım 2004
Mesajlar
446
Excel Vers. ve Dili
Excel 2016
Türkçe 64 BIT
Altın Üyelik Bitiş Tarihi
16-10-2025
Bu işlemi gerçekleştirmek için bir butona VBA kodu ekleyebilirsiniz. Aşağıda verilen kod, B30 hücresinde yazan sayfa adını kontrol eder ve o sayfayı aktif hale getirir:

Kod
  1. Excel'de Geliştirici Sekmesini açın.
  2. Ekle kısmından bir buton ekleyin.
  3. Butona sağ tıklayıp Makro Ata seçeneğini seçin.
  4. Aşağıdaki kodu bir modüle yapıştırın ve butona bu makroyu atayın:
Kod:
Sub SayfayıAç()
    Dim SayfaAdi As String
    
    ' Ana sayfadaki B30 hücresindeki değeri al
    SayfaAdi = ThisWorkbook.Sheets("AnaSayfa").Range("B30").Value
    
    On Error Resume Next ' Hataları yakala
    ' Eğer sayfa bulunamazsa uyarı ver
    If ThisWorkbook.Sheets(SayfaAdi) Is Nothing Then
        MsgBox "Belirtilen sayfa mevcut değil: " & SayfaAdi, vbCritical, "Hata"
    Else
        ' Sayfayı aktif yap
        ThisWorkbook.Sheets(SayfaAdi).Activate
    End If
    On Error GoTo 0 ' Hataları sıfırla
End Sub
Notlar:
  1. "AnaSayfa" yazan kısmı, ana sayfanızın adıyla değiştirin.
  2. Eğer bir hata olursa, kullanıcıya bir mesaj gösterilir.
  3. Hedef sayfa adının tam olarak mevcut sayfa adlarıyla eşleştiğinden emin olun (ör. boşluklara veya büyük/küçük harflere dikkat edin).
Kullanım:
  • B30 hücresine bir sayfa adı yazın (örneğin, OCAK).
  • Butona tıklayın, yazılan sayfa otomatik olarak açılacaktır.
 

md3m1ray

Altın Üye
Katılım
21 Şubat 2024
Mesajlar
45
Excel Vers. ve Dili
Excel 2021
Altın Üyelik Bitiş Tarihi
23-10-2025
daha önce arkadaşlar paylaşmıştı bunları uyarlayabilirsiniz :

Kod:
Function SayfaVarMi(Sayfa As String) As Boolean
    On Error Resume Next
    SayfaVarMi = CBool(Len(Worksheets(Sayfa).Name) > 0)
End Function

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
    If Intersect(Target, [B30]) Is Nothing Then Exit Sub
    Dim Sayfa As String
    Sayfa = Selection.Value
    If Sayfa = "" Then Exit Sub
    If SayfaVarMi(Sayfa) Then
        Sheets(Sayfa).Select
    Else
        MsgBox Sayfa & " Yok", vbCritical
    End If
End Sub
ve çift tıklayınca çalışan farklı bir yaklşım :
Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error Resume Next
sat = Target.Row
süt = Target.Column
If süt = 2 And sat = 30 <> "" Then
sayfaadı = Cells(sat, süt)
Sheets(sayfaadı).Select
End If
Cancel = True
End Sub
 
Katılım
27 Eylül 2023
Mesajlar
56
Excel Vers. ve Dili
Office 2016 Türkçe
Çok teşekkür ederim arkadaşlar. Eksik olmayın
 
Üst