• DİKKAT

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

Çift Tıklama ile Sayfa Değiştirme Sorunsalı

Katılım
18 Ekim 2005
Mesajlar
46
Excel Vers. ve Dili
Office 2007 TR
arkadaşlar hücreye tıklandığında aynı excel dosyası içerisinde farklı bir çalışma sayfasını açmak istiyorum.bu nasıl mümkün olabilir yardımcı olabilirmisiniz acaba.şimdiden teşekkürler.
şeklindeki sorusuna;

Selamlar,

Bu işlemi yapacağınız sayfanın kod bölümüne aşağıdaki kodu uygulayıp denermisiniz.

Kod:
Option Explicit
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error GoTo Son
    If Target = "" Then Exit Sub
    If Target <> "" Then Sheets(Target.Text).Select: Exit Sub
Son: MsgBox Target & " sayfası bulunamadı !", vbExclamation
End Sub

şeklinde cevap vermiş.
Buradan yola çıkarak, kodlarla hiç olmayan bilgimle araştırarak çift tıklamayı şu şekilde ekledim;

Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error GoTo Son
    If Target = "" Then Exit Sub
    If Target <> "" Then Sheets(Target.Text).Select: Exit Sub
Son:     MsgBox Target & " sayfası bulunamadı !"
End Sub

Sonrada bütün çalışma kitabında geçerli olması için;
Kod:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
On Error GoTo Son
    If Target.Text = "" Then Exit Sub
    If Target.Text <> "" Then Sheets(Target.Text).Select: Exit Sub
Son:     MsgBox Target & " sayfası bulunamadı !"
End Sub

bu hale getirdim.
Ancak bu seferde çift tıkladığım hücrenin yanındaki hücrenin değeri ile hareket edebilmek için
kodu;
Kod:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
On Error GoTo Son
    If Target.Text = "" Then Exit Sub
    If Target.Text <> "" Then Sheets(Target.Offset(1, -1)).Select: Exit Sub
Son:     MsgBox Target & " sayfası bulunamadı !"
End Sub

haline getirerek, sorunu çözdüğümü düşündüm.
Ancak ilk sayfada başarılı çalışan kod, "3" sayfasına geçince "6" sayfasına geçmeye çalıştığımda sayfası bulunamadı hatası veriyor.
Anladığım kadarı ile okutma yaptırmayı başardığım "A" sütunun tıklanan değerin altındaki hücre dolu olması gerekiyor ama neden???


Ben nerede yanlış yaptım ?

Bundan sonraki kısım araştırmayı ve okumayı biraz aşıyor sanırım. Konuda bilgisi olan arkadaşlar acil yardım lazım. Okuyup anlayıp, yardımcı olan arkadaşlara şimdiden teşekkür ederim.
Saygılarımla.
 
merhaba

bu şekilde deneyiniz.
Kod:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
On Error GoTo Son
    If Target.Text = "" Then Exit Sub
    If Target.Text <> "" Then Sheets(Target.Offset(0, -1).Text).Select: Exit Sub
Son:     MsgBox Target & " sayfası bulunamadı !"
End Sub
 
Merhaba,

Kod:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
On Error GoTo Son
    If Target.Text = "" Then Exit Sub
    If Target.Text <> "" [COLOR=red]Then Sheets(Target.Offset(1, -1)).[/COLOR]Select: Exit Sub
Son:     MsgBox Target & " sayfası bulunamadı !"
End Sub

Kod:
Sheets(Target.Offset(1, -1).Text)
şeklinde değiştirmeyi deneyin.
 
Selamlar,

Siz kod içinde Target.Offset(1, -1) komutunu kullanmışsınız. Bu komut tıklanan hücrenin 1 satır altındaki hücreyi ifade eder.

Hücre başvurusu olarak örneklersek;
Çit tıklanan hücre A1 ise bu komut size A2 hücresinin değerini döndürür.

Kodu aşağıdaki şekilde düzenlerseniz sorun ortadan kalkacaktır.

Kod:
Option Explicit
 
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    On Error GoTo Son
    If Target.Text = "" Then Exit Sub
    If Target.Text <> "" Then Sheets([B][COLOR=red]Target.Offset(0, 1).Text[/COLOR][/B]).Select: Exit Sub
Son: MsgBox[COLOR=red] [B]Target.Offset(0, 1).Text[/B][/COLOR] & " sayfası bulunamadı !"
End Sub
 
Korhan Bey'in yazdığı kodu,
Target.Offset(0, 1).Text halinden (0, -1) şekline getirdim.
B1 hücresinden A1'e dönmesini sağladım.

Şu anda kod çalışıyor, cevaplayan arkadaşlarada teşekkür ederim.
 
Geri
Üst