• DİKKAT

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

Çalışma kitabının her sayfası için aynı komutun çalışması

Katılım
14 Kasım 2017
Mesajlar
50
Excel Vers. ve Dili
2016
Arkadaşlar herkese merhaba. Bir çok sayıda sayfadan oluşan bir çalışma kitabım var. hangi sayfada olursam olayım her sayfanın "P" sütunundaki herhangi bir hücreye bastığımda "Ana Sayfa" isimli sayfaya gitmek istiyorum. Bu kural ("demirbaş" , "icmal" , "mağazalar") isimli sayfalarda çalışmayacak. Sanırım çok basit ama kodlayamadım yine :(

Yardımcı olursanız çok sevinirim...
 
Merhaba.
Aşağıdaki kodu dosyanızın "BuÇalışmaKitabı(ThisWorkBook") adlı kod bölümüne kopyalayın.

Kod:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If Intersect(Target, Range("P:P")) Is Nothing Or _
    Sh.Name = "demirbaş" Or Sh.Name = "icmal" Or Sh.Name = "mağazalar" Or Sh.Name = "Ana Sayfa" Or _
    Target.Cells.Count > 1 Then Exit Sub
    Worksheets("Ana Sayfa").Activate
End Sub
 
Merhaba.
Aşağıdaki kodu dosyanızın "BuÇalışmaKitabı(ThisWorkBook") adlı kod bölümüne kopyalayın.

Kod:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If Intersect(Target, Range("P:P")) Is Nothing Or _
    Sh.Name = "demirbaş" Or Sh.Name = "icmal" Or Sh.Name = "mağazalar" Or Sh.Name = "Ana Sayfa" Or _
    Target.Cells.Count > 1 Then Exit Sub
    Worksheets("Ana Sayfa").Activate
End Sub

sayfada daha önce bulunan bir kod vardı onunla çakıştı sanırım ve "ambiguous name detected: workbook_sheetselectionchange" uyarısı verdi ne yapmalıyım bilemedim.

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
On Error GoTo hata
If Intersect(Target, [E1:E65536]) Is Nothing Then Exit Sub
Worksheets(Target.Text).Select
hata:
End Sub

ve

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If Intersect(Target, Range("P: P")) Is Nothing Or _
Sh.Name = "demirbaş" Or Sh.Name = "icmal" Or Sh.Name = "mağazalar" Or Sh.Name = "Ana Sayfa" Or _
Target.Cells.Count > 1 Then Exit Sub
Worksheets("Ana Sayfa").Activate
End Sub

Ne yapacağımı bilemedim. google dan baktığım kadarıyla sayfa isimleri aynı olduğu için olabilirmiş bu hata. ama çözümünü uygulayamadım.
 
Şu şekilde kullanabilirsiniz.

Kod:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If Not Intersect(Target, Range("E:E")) Is Nothing Then
        On Error Resume Next
        Worksheets(Target.Text).Activate
    End If
    
    If Not Intersect(Target, Range("P:P")) Is Nothing And _
    Not Sh.Name = "demirbaş" And Not Sh.Name = "icmal" And Not Sh.Name = "mağazalar" And Not Sh.Name = "Ana Sayfa" And _
    Target.Cells.Count < 1 Then
        Worksheets("Ana Sayfa").Activate
    End If
End Sub
 
Şu şekilde kullanabilirsiniz.

Kod:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If Not Intersect(Target, Range("E:E")) Is Nothing Then
        On Error Resume Next
        Worksheets(Target.Text).Activate
    End If
  
    If Not Intersect(Target, Range("P:P")) Is Nothing And _
    Not Sh.Name = "demirbaş" And Not Sh.Name = "icmal" And Not Sh.Name = "mağazalar" And Not Sh.Name = "Ana Sayfa" And _
    Target.Cells.Count < 1 Then
        Worksheets("Ana Sayfa").Activate
    End If
End Sub


Sn. dalgalikur hata verdi ve sarı boyadığım bölgeyi gösterdi. kodlar çalışmadı.

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If Not Intersect(Target, Range("E:E")) Is Nothing Then
On Error Resume Next
Worksheets(Target.Text).Activate
End If

If Not Intersect(Target, Range("P: P")) Is Nothing And _
Not Sh.Name = "demirbaş" And Not Sh.Name = "icmal" And Not Sh.Name = "mağazalar" And Not Sh.Name = "Ana Sayfa" And _
Target.Cells.Count < 1 Then
Worksheets("Ana Sayfa").Activate
End If
End Sub
 
Evet devamlı olarak bu hatayı veriyor şuanda;

Run-time error '1004':
Method 'Intersect' of object'_Global'failed
 
Orada o hatayı nasıl veriyor anlamadım.
Dosyanızı paylaşım sitesine ekleyin bir bakayım.
 
Sn dalgalikur, tamam şimdi oldu, yardımlarınız için çok teşekkür ederim.
 
Geri
Üst