Hücreye Tıklandığında Alana Gitmek

Katılım
26 Eylül 2011
Mesajlar
149
Excel Vers. ve Dili
excel 2010 türkçe
Arkadaşlar herkese selamlar,

Hücreye tıkladığımda o anda hücrenin içinde yazılı olan isimle tanımlanmış olan alana gidecek bir koda ihtiyacım var. örnek dosyayı ekledim. Yardımcı olabilecek arkadaşlara şimdiden çok teşekkür ederim.
 

Ekli dosyalar

asi_kral

Özel Üye
Katılım
22 Şubat 2012
Mesajlar
2,833
Excel Vers. ve Dili
Excel 2007 Türkçe
Arkadaşlar herkese selamlar,

Hücreye tıkladığımda o anda hücrenin içinde yazılı olan isimle tanımlanmış olan alana gidecek bir koda ihtiyacım var. örnek dosyayı ekledim. Yardımcı olabilecek arkadaşlara şimdiden çok teşekkür ederim.
Merhaba
Kod:
w1w
Böyle bir alan yoktur ki_?
W sütunu mu olacak seçeceğiniz Yoksa W1 mi olacak hangisi olacak
 
Katılım
26 Eylül 2011
Mesajlar
149
Excel Vers. ve Dili
excel 2010 türkçe
Asikral merhaba,

Dosyada range w1w yazan yeri kenarlıklar içinde kalacak şekilde tüm hücreleri seçin lütfen.. O alanın ismi w1w
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
Merhaba

Köprü fonksiyonu ile yapabilirsiniz, makroya gerek yok.


Not: Köprü fonksiyonunun işlevini göstermek için başka hücreye yazmıştım.
C4 hücre formülü olarak yazmak mümkün.
Kod:
=KÖPRÜ("[Soru.xlsx]sayfa1!"&"w"&C3&"w";"atla")
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,034
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Sayfanızın kod bölümüne aşağıdaki kodu uygulayıp denermisiniz.

C4 hücresine çift tıkladığınızda kod çalışacaktır.

Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Intersect(Target, Range("C4")) Is Nothing Then Exit Sub
    Cancel = True
    If Target.Text <> "" Then
        Application.Goto Reference:=Target.Text
    End If
End Sub
 
Katılım
26 Mayıs 2005
Mesajlar
608
Excel Vers. ve Dili
Office 2022 - Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, [c4]) Is Nothing Then Exit Sub

    Cells.Find(What:=[c4], After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False).Activate
End Sub

kodları çalışma sayfasının Worksheet kısmına yapıştırın C4 hüvcresine çift tıkladığınızda ilgili yere gidecektir
 
Katılım
26 Mayıs 2005
Mesajlar
608
Excel Vers. ve Dili
Office 2022 - Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
sayın, uzmanamele ve Korhan Ayhan hızınıza yetişmek ne mümkün :)
 
Katılım
26 Eylül 2011
Mesajlar
149
Excel Vers. ve Dili
excel 2010 türkçe
Her formülde sayfa referansı belirtmek zorunlu mu? "[Soru.xlsx]sayfa1!" gibi...
 
Katılım
26 Eylül 2011
Mesajlar
149
Excel Vers. ve Dili
excel 2010 türkçe
Sayın Ayhan şimdi enteresan bişi oldu ... örnek dosyada çalışıyor... kendi dosyama uyarlayınca orada compile error: ambigious name detected mesajı geliyor. c4 yani hücre referansını kendi dosyamdaki referans noktası ile değiştirdim de halbuki...
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,034
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Bu hatayı şu sebeple alıyorsunuz;

Çalışmanızda aynı olaya ait iki farklı kod bulunuyor.

"Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)"

Bu durumda bu hatayı alırsınız.


Ne yapmanız gerekiyor;

Bu isimle başlayan kodlarınızı uygun bir yapıyla birleştirmeniz gerekiyor.
 
Katılım
26 Eylül 2011
Mesajlar
149
Excel Vers. ve Dili
excel 2010 türkçe
compile error : ambigious name detected: worksheetbeforedoubleclick

tam olarak mesaj bu... excel türkçe hata mesajı neden ingilizce o da yarı tartışma konusu :)
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
compile error : ambigious name detected: worksheetbeforedoubleclick

tam olarak mesaj bu... excel türkçe hata mesajı neden ingilizce o da yarı tartışma konusu :)
Merhaba
Ofis sürümünüz Türkçe olsa bile vba her daim İngilizcedir, tartışmayalım. :)
 
Katılım
26 Eylül 2011
Mesajlar
149
Excel Vers. ve Dili
excel 2010 türkçe
Bu arada uzmanamele, programer ve asikrala da teşekkür etmeyi unutmuyorum. eksik olmayın ilgilendiniz. Çok teşekkür ederim.

Programer sizin koduuygulayınca da aynı mesajı alıcam bu durumda...

Korhan Hocam size de çok teşekkür ederim hızınız takdire şayan :)
 
Katılım
26 Eylül 2011
Mesajlar
149
Excel Vers. ve Dili
excel 2010 türkçe
Uygun yapı :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

bu kısım sabit olacak o zaman. Çünkü iki kere oldumu hata veriyor onu anladık. Altındaki kodları nasıl birleştirebilirim acaba?

If Target.Column = 2 Then
Range("a4") = Target.Cells.Offset(0, 421)
Range("a7") = Target.Cells.Offset(0, 423)
End If
Range("a1").Select
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("a16")) Is Nothing Then Exit Sub
Cancel = True
If Target.Text <> "" Then
Application.Goto Reference:=Target.Text
End If
End Sub
 
Katılım
26 Eylül 2011
Mesajlar
149
Excel Vers. ve Dili
excel 2010 türkçe
Oldu... başardımmm :) Çok çok teşekkürler herkese
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
Merhaba

Basitçe fonksiyonlarla yapılabilecek çözümler yerine makro kullanmayı doğru bulmuyorum.
Amcalar, excelin yerleşik fonksiyonları ile çok güzel çözüm yolları önermişler. Hatta bu mereti icat edenlerin aklına gelmeyen çözüm yolları olduğuna eminim.
Hal böyle iken basitçe yapılabilecek şeyler yerine neden makro hevesine kapılıyoruz.
Basitçe yazılan köprü formülü işinizi fazlasıyla görecektir.

Dosyayı başka birinin kullanma olasılığı varsa, kullanıcı hatası her zaman olacaktır. Kimi makroyu etkinleştirmeyi unutacak, kimi makinede makro çalışması engellenmiş olacak, kimi makinede makro zaten çalışmıyor olacak vs vs vs...

Makro, destek amaçlı kullanılmalı, ya da dosya boyutu büyük veya bir çok alana başvuran karmaşık formüller yerine tercih edilmeli.

Ben bunu; yeni ehliyet alan birinin F1'de yarışmak istemesine benzetiyorum.
Hadi bıraktık şehir içi trafiğini, bari go card hadi onu da geçelim ralli denemesi yap.

Bu düşüncem syn ant1905'i eleştirmek için değil, genel bir düşüncedir.
 
Katılım
26 Eylül 2011
Mesajlar
149
Excel Vers. ve Dili
excel 2010 türkçe
Aslında doğru... ben genelde formül ile çözmeye çalışıyorum. Ama tabii çok büyük dosya olunca formülün getirdiği ağırlığa karşılık makronun ne kadar işlemci ve ram yorduğunu bilmiyorum açıkcası. Hangisi daha avantajlı ?


Şu anda çalıştığım dosya 40MB a ulaştı. Geçen hafta laptopu 8 Gb çıkarmak zorunda kaldım çünkü RAM kullanımı kritik düzeye kadar yükseldi. Çok yoğun formül var dosyada. Dosya büyüdükçe önce otomatik hesaplamayı kapatmak sonra da dediğim gibi ram artırımı yapmak durumunda kaldım. Sizin çözümünüzde gayet makul idi ama mümkün olduğunca tek hücre üzerinden gitmek işime geldi açıkcası.

Şunu da söylemeden geçemicem bugüne kadar sorduğum sorularda herbiriniz bence birbirinden değerli cevaplar verdiniz. Ben kodu da formülü de seviyorum. Biraz daha iyi kod bilmeyi ve yazabilmeyi isterdim. Mantığını biraz anlıyorum aslında sanırım.Yaş 42 ama hiçbirzaman çok geç değildir tabii. :)
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
Merhaba

Bir excel dosyası 40mb olmuşsa, sorun dosyada değil sizdedir.
Muhtemelen birçok gereksiz şey kullanmışsınızdır.
Optimal bir excel dosyası için altın kurallar

DoubleClick ile çalışan makro büyük dosyalarda sorun çıkarabilir.
Bu şekilde hesaplamayı tetiklemiş olursunuz, sanki veri girişi yapılmış gibi dosyadaki bütün formüller tekrar hesaplanır. Oysa sizin örneğinizde köprü formülü yazıldığında hesaplama yapılmış olacaktır, sonradan bu hücreyi tıklamanız hesaplamayı gerektirmez, sadece köprü olayı tetiklenir.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,034
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Bende bu konuda Sn. uzmanamele beye katılıyorum. Çözümlerde önce yerleşik işlevler tercih edilmelidir.

Fakat sizin son bir haftadır sorduğunuz soruları ve soruyu sorduğunuz bölümü gözönünde bulundurarak makrolu çözüm önerdim.
 
Üst