Link içeren hücreyi başka hücreye kopyalama

Katılım
14 Mayıs 2021
Mesajlar
15
Excel Vers. ve Dili
2016 / Türkçe
Alternatif;

Aşağıdaki kodu boş bir modüle uygulayın. (Kullanıcı Tanımlı Fonksiyon)

C++:
Option Explicit

Function URL(My_Cell As Range)
    URL = My_Cell.Hyperlinks.Item(1).Address
End Function
Sonra sayfanıza geri dönün.

C1 hücresine aşağıdaki formülü uygulayın.

C++:
=KÖPRÜ(URL(A1);A1)
Bu kod çok işime yaradı Korhan Bey. Gerçekten çok teşekkür ederim. Özellikle uzun URL'lerde çok büyük kolaylık sağlıyor. Sağolun, varolun, ne diyeyim. :)



Peki biraz daha ileriye gidersek ne olur? Örneğin, diyelim ki resimdeki gibi, Sayfa1!A1 hücresinin içeriğini verdiğiniz kod yardımıyla Sayfa2!A1 hücresine klonladım. Şimdi de Sayfa2!A1 hücresinin içeriğini Sayfa3!A1 hücresine klonlamak istiyorum. Yani artık Sayfa1!A1 hücresi ile bir işim kalmadı. Bu durumda ne yapılmalı?

Sayfa2!A1 Sayfa1!A1'e göre, Sayfa3!A1 de Sayfa2!A1'e göre değişecek. Böyle bir şey mümkün mü?

Bunu neden yapmak istediğimi tahmin ediyorum anlamışsınızdır. Sayfa1!A1 hücresindeki link benim ana linkim. Bu link aynı Excel dosyasındaki başka sayfalarda da bulunuyor. Bazen sıralamalara maruz kalıyor. Tabloda bulunduğu konum değişiyor. Ana linkte herhangi bir değişiklik yapıldığı zaman diğer sayfalarda bulunan aynı link, her nerede bulunuyor olursa olsun otomatik olarak güncellensin istiyorum. :)
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bütün klonlamak istediğiniz diğer sayfalarda Sayfa1!A1 olarak link verirseniz sorun çıkarmadan kullanabilirsiniz. Sonuçta kaynak köprü bu hücrede bulunuyor.

Ya da KTF'yi aşağıdaki gibi değiştirip deneyiniz.

C++:
Option Explicit

Function URL(My_Cell As Range)
    If My_Cell.HasFormula Then
        URL = Range(Replace(My_Cell.Formula, "=", "")).Hyperlinks.Item(1).Address
    Else
        URL = My_Cell.Hyperlinks.Item(1).Address
    End If
End Function
 
Katılım
14 Mayıs 2021
Mesajlar
15
Excel Vers. ve Dili
2016 / Türkçe
Bütün klonlamak istediğiniz diğer sayfalarda Sayfa1!A1 olarak link verirseniz sorun çıkarmadan kullanabilirsiniz. Sonuçta kaynak köprü bu hücrede bulunuyor.

Ya da KTF'yi aşağıdaki gibi değiştirip deneyiniz.

C++:
Option Explicit

Function URL(My_Cell As Range)
    If My_Cell.HasFormula Then
        URL = Range(Replace(My_Cell.Formula, "=", "")).Hyperlinks.Item(1).Address
    Else
        URL = My_Cell.Hyperlinks.Item(1).Address
    End If
End Function
Haklısınız. Çoğunlukla ana linke bağlamak işe yarıyor. Ama şöyle bir senaryoda bunu yapmak işe yaramıyor:



Örneğin resimde, Sayfa2'deki linklerin pozisyonları sürekli olarak değişiyor. İçerik sayısı değiştikçe bu linklerin pozisyonları da buna bağlı olarak değişiyor. Ancak ne kadar değişirse değişsin,

Sayfa3!B1 hep Sayfa2!B2'den,

Sayfa3!B2 hep Sayfa2!B5'ten veri alıyor.

Benim problemim şu ki, Sayfa2!B2 ve Sayfa2!B5'e hangi linklerin geleceğini bilmiyorum. Bu yüzden ana linke bağlantı veremiyorum.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Boş bir sütuna benzersiz bir ID numarası vererek sorunları çözebilirsiniz. ID numarasını diğer sayfalardan DÜŞEYARA ya da İNDİS+KAÇINCI gibi arama fonksiyonlarını kullanarak çağırabilirsiniz.
 
Katılım
14 Mayıs 2021
Mesajlar
15
Excel Vers. ve Dili
2016 / Türkçe
Excel'de kodları deneme yanılmayla kurcalarken yeni bir şey fark ettim. Elbette "benim için" yeni bir şey.

VBA'da hücrenin değerini (Value) başka bir hücreye kopyalabildiğimiz gibi formülünü de (Formula) kopyalayabiliyormuşuz. Yani Sayfa3'teki B1 ve B2 hücreleri için,

Range("B1").Formula = Worksheets("Sayfa2").Range("B2").Formula
Range("B2").Formula = Worksheets("Sayfa2").Range("B5").Formula

gibi basit bir kod işe yarıyor. Bu yöntem kullanıldığı zaman, kod Sayfa2'deki hücrelerin değeri yerine formülünü aldığı için Sayfa3'e gelen linkler sorunsuz bir şekilde çalışıyor. Siz olmasaydınız fark etmeyi başaramazdım. Teşekkürler, ilginiz ve yardımlarınız için. :)
 
Üst