Link yardımı ile makro tetiklemek

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba Arkadaşlar,
Kod:
Sub Link_Yap()
    [A3] = "Oku_Beni"
    uu = "#" & [A3] & "!A2"
    ActiveSheet.Hyperlinks.Add Anchor:=Cells(3, 1), Address:=uu
End Sub
Bu makro ile A3 hücresinde bulunan Oku_Beni yazısını, Oku_Beni sayfasında A2 hücresine götüren link oluşturuluyor.
Aynı Oku_Beni yazısını, Makro1 adlı makroyu tetiklemek için nasıl kullanabilirim?
Saygılarımla
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Linkin bulunduğu sayfanın kod kısmına aşağıdaki kodu kopyalayınız.

Kod:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    If Target.SubAddress = "Oku_Beni!A2" Then
        Makro1
    End If
End Sub
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Muzaffer Ali Hocam,
İlginize teşekkür ederim, işte sorun burada. Sayfalar makro ile otomatik oluşturuluyor.
https://excel.web.tr/threads/olusturulan-sayfanin-kod-boeluemuene-tetikleme-makrosu.212534/
linkteki soruyu da bu nedenle sormuştum. 10 yıl kadar önce benzer bir çalışma yapmıştım. Tüm arşivimi aradım, ama bulamadım. Bu yüzden yeniden sordum. Yaklaşık 1500 civarında öğrenci için hazırlanıyor.
Saygılarımla
 
Son düzenleme:

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
1- Tetikleme derken hangisinden bahsediyorsunuz? Sayfa seçimi, Hücre seçimi vs. ?
2- Eklenecek kod hangisi? "BuÇalışmaKitabı" adlı kod sayfasına kod eklense tüm sayfalarda çalışır. Bir yada daha fazla sayfa hariç tutulacaksa o da yapılabilir. Bu çözüm olur mu? Bu çözüm olmuyorsa eklenecek kodu da paylaşın.
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Arkadaşım,
Oluşturulan sayfalarda A3 hücresini seçtiğinde çalışabilir. 2 numaralı seçenek te olabilir. (hariç tutulacaklar var tabi)
Saygılarımla
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Bir kod sayfasına kod eklemek için aşağıdaki kodu kullanabilirsiniz.
Kod:
Sub Test()
    Dim Kod As String
    Dim ModulAdi As String
    
    ModulAdi = "Sayfa1" 'Buraya modül adı yazılacak sayfa adı değil. Yada di,ğer bir değişle sayfanın VBA daki adı yazılacak.
    
    Kod = "Private Sub Worksheet_Change(ByVal Target As Range)" & vbLf & _
    "    msgbox target.address" & vbLf & _
    "End Sub"

    ThisWorkbook.VBProject.VBComponents(ModulAdi).CodeModule.AddFromString Kod
End Sub
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Arkadaşım,
İlginize teşekkür ederim. Örneğe pek gerek olacağını düşünmemiştim. Sanırım böylelikle daha pratik bir çözüm bulacağız.
İstediğim olay Sayfa1 de linklere basarak sayfaya gitmek (bunu oluşturdum), gidilen sayfadan Sayfa1 de hangi hücreden gidilmişse o hücreye dönmek.
Saygılarımla
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Tam olarak yapmak istediğiniz şey şu mu?
Saysa1 A sütununda bulunan hücrelerdeki isimlerde yeni sayfalar eklemek ve bitince Sayfa1 de kalmak mı istiyorsunuz?

Doğru anlamamışsam detaylı bir şekilde anlatınız.

(Not: Soru sorarken sadece soruyu sorun, hangi yöntem ile çözüm bulunacağını bize bırakın. sizin bulduğunuz yöntem dışında çok daha pratik bir çözüm yolu bulunabilir. Yani şu türden bir çözüm istiyorum deyince işler tamamen değişiyor. Siz sadece sorunuzu iletin.)
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayfa1 A sütununda bulunan hücrelere bu isimde sayfalar açıldığında o sayfalara gidebilmek için link vermek. Sayfa1 A sütununda bulunan hücrelerdeki isimlerle yeni sayfalar eklemek, eklenen sayfaların adlarını eklenen sayfada A3 e yazmak, burada A3 e link verip Sayfa1 de hangi hücrede bu isim varsa bulup o hücreye oturmasını sağlamak
Saygılarımla
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Deneyiniz.

Kod:
Sub Sayfa_Ekle()
    Dim YeniSayfa As Worksheet
    Dim Bak As Long
    With Worksheets("Sayfa1")
        For Bak = 1 To .Cells(Rows.Count, "A").End(3).Row
            Set YeniSayfa = Sheets.Add(After:=Sheets(Sheets.Count))
            YeniSayfa.Name = .Cells(Bak, "A")
            YeniSayfa.Range("A3").Value = .Cells(Bak, "A")
            YeniSayfa.Hyperlinks.Add Anchor:=Range("A3"), Address:="", SubAddress:=.Name & "!" & .Cells(Bak, 1).AddressLocal
            .Hyperlinks.Add Anchor:=.Cells(Bak, "A"), Address:="", SubAddress:=YeniSayfa.Name & "!A3"
        Next
    End With
End Sub
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Muzaffer Ali,
Çok teşekkür ederim. Makbule geçti. Tekrar kontrolu için tedbir almak gerekecek sanırım.
İyi çalışmalar
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Sayfa tekrarı kontrolü eklenmiştir.
Kod:
Sub Sayfa_Ekle()
    Dim YeniSayfa As Worksheet
    Dim Bak As Long
    Dim syf As Integer
    Dim SayfaVar As Boolean
    
    With Worksheets("Sayfa1")
        For Bak = 1 To .Cells(Rows.Count, "A").End(3).Row
            For syf = 1 To Worksheets.Count
                If Worksheets(syf).Name = .Cells(Bak, "A") Then
                    SayfaVar = True
                    Exit For
                Else
                    SayfaVar = False
                End If
            Next
            If SayfaVar Then
                Set YeniSayfa = Worksheets(.Cells(Bak, "A").Text)
            Else
                Set YeniSayfa = Sheets.Add(After:=Sheets(Sheets.Count))
                YeniSayfa.Name = .Cells(Bak, "A")
            End If
            YeniSayfa.Range("A3").Value = .Cells(Bak, "A")
            YeniSayfa.Hyperlinks.Add Anchor:=Range("A3"), Address:="", SubAddress:=.Name & "!" & .Cells(Bak, 1).AddressLocal
            .Hyperlinks.Add Anchor:=.Cells(Bak, "A"), Address:="", SubAddress:=YeniSayfa.Name & "!A3"
        Next
    End With
End Sub
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
İlginize çok teşekkür ederim.,
İyi çalışmalar
 
Üst