Çözüldü Kod ile köprü yolu bulma.

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,398
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Birde 10.cu mesajda anlattığınız ayar için kod varmı.
Yani kod kendi yapacak o ayarı.
VBA dediğimiz şey "aspirin" değil ki, herkesin her türlü ihtiyacını hemen gidersin. Önce, klasik tedavi yöntemlerini denemek lazım.

Sanırım sizinle bir türlü anlaşamıyoruz, kolay gelsin........

.
 
Katılım
5 Kasım 2006
Mesajlar
602
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
VBA dediğimiz şey "aspirin" değil ki, herkesin her türlü ihtiyacını hemen gidersin. Önce, klasik tedavi yöntemlerini denemek lazım.

Sanırım sizinle bir türlü anlaşamıyoruz, kolay gelsin........

.
10.mesajınızı ya güncellediniz yada ben akşam olduğu için tam dikkat edemedim.
Aslında anlaşamayacak bir durum yok Altın üye olun demenizden başka :)
Bilgiler için sağolun.
Bu şekilde ayar yapma olayı isteğimi karşılamıyor.En iyisi galiba hyperlink.address gibi bir kod var onunla açmak dosyaları.
Teşekkürler sizede iyi çalışmalar.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,398
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
10. mesajda önemli bir revizyon yapmamıştım. Belki nokta, virgül düzeltmesi gibi bir şey yapmışımdır sadece.

Ayarı yapmaktan neden çekiniyorsunuz ya da yapmak istemiyorsunuz, o da sizin bileceğiniz bir şey.

Yine de söz konusu ayarın VBA ile yapılması için, aşağıdaki kodu kullanabilirsiniz;

Kodda geçen Hyperlink base ibaresi, kullandığınız Excel versiyonu (Türkçe, Almanca vb) ile uyumlu değilse, onu bilemem artık.....

Kod:
Sub Test()
    For Each Prop In ThisWorkbook.BuiltinDocumentProperties
        If Prop.Name = "Hyperlink base" Then Prop.Value = "X:\"
    Next
End Sub
.

.
 
Katılım
5 Kasım 2006
Mesajlar
602
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
10. mesajda önemli bir revizyon yapmamıştım. Belki nokta, virgül düzeltmesi gibi bir şey yapmışımdır sadece.

Ayarı yapmaktan neden çekiniyorsunuz ya da yapmak istemiyorsunuz, o da sizin bileceğiniz bir şey.

Yine de söz konusu ayarın VBA ile yapılması için, aşağıdaki kodu kullanabilirsiniz;

Kodda geçen Hyperlink base ibaresi, kullandığınız Excel versiyonu (Türkçe, Almanca vb) ile uyumlu değilse, onu bilemem artık.....

Kod:
Sub Test()
    For Each Prop In ThisWorkbook.BuiltinDocumentProperties
        If Prop.Name = "Hyperlink base" Then Prop.Value = "X:\"
    Next
End Sub
.

.
Bu kodu çalıştırdım olmadı malisef.Exceli ingilizceye çevirip 10.cu mesajdakilerinide uyguladım adım adım oda fayda etmedi.
Yinede sağolunuz.Belki Excel versiyon ile alakalıdır.
Kolay gelsin.Sağolun herşey için.
 
Katılım
5 Kasım 2006
Mesajlar
602
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Kastettiğim tam anlaşılmadı galiba,
Mesela A1 hücremiz köprü olan hücre olsun aşağıdakine benzer bir kod kullanarak tam yolu bulabilirsiniz.
Kod:
Sub kod()
adres = Range("A3").Hyperlinks(1).Address
If InStr(1, adres, ":") > 0 Then
    tamadres = adres
Else
    tamadres = ThisWorkbook.Path & "\" & adres
End If
MsgBox tamadres
End Sub
Burada eğer excel dosyası köprüdeki dosyaya göre alt klasörde ise dosya yolunda /../../ gibi üst klasöre çıkma ifadeleri yer alabilir ama bu shell komutunda problem olmaz. Zannedersem ihtiyacınızı karşılayacaktır.
İyi çalışmalar...
Merhaba kodunuzu aşağıdaki gibi yaptım herşey mükemmel çalışıyor denemelerimde.

Elinize sağlık,kolay gelsin.

Kod:
Sub kod()

Dim tamadres As String
Dim adres As String

adres = Range("A1").Hyperlinks(1).Address
If InStr(1, adres, ":") > 0 Then
    tamadres = adres
    Call CreateObject("Shell.Application").ShellExecute(tamadres)
Else
    tamadres = ThisWorkbook.Path & "\" & adres
    Call CreateObject("Shell.Application").ShellExecute(tamadres)
End If

End Sub
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,398
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Sizin amacınız A1 hücresindeki hyperlink ile bağlanmış dosyayı açmak ise, aşağıdaki ufak kod bu işi daha rahat yapar...

Kod:
Sub Test2()
    Range("A1").Hyperlinks(1).Follow
End Sub
.
 
Katılım
5 Kasım 2006
Mesajlar
602
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Sizin amacınız A1 hücresindeki hyperlink ile bağlanmış dosyayı açmak ise, aşağıdaki ufak kod bu işi daha rahat yapar...

Kod:
Sub Test2()
    Range("A1").Hyperlinks(1).Follow
End Sub
.
Asıl amacım köprürün tam adresini bulmaktı.
Ve özellikle Shell ile açmaktı.Çünkü dediğiniz gibi yapmıştım önceden ve Makro Güvenlik uyarısı çıkıyordu ve tamama basınca açılıyordu.Bende böyle uyarı çıkmasın diye Shell olarak açılsın istedim.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,398
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Bu kodu çalıştırdım olmadı malisef.Exceli ingilizceye çevirip 10.cu mesajdakilerinide uyguladım adım adım oda fayda etmedi.
Yinede sağolunuz.Belki Excel versiyon ile alakalıdır.
Kolay gelsin.Sağolun herşey için.
Aşağıdaki kodu çalıştırdığınızda, sayfada C sütununda listelenen verilerden bir tanesi "Hyperlink base" olmalı. (Belki Almanca veya başka versiyonlarda daha değişik bir ifade olabilir, bilmiyorum)

Çalıştırıp, kontrol edebilirmisiniz?


Kod:
Sub Test3()
    For Each Prop In ThisWorkbook.BuiltinDocumentProperties
        i = i + 1
        Range("C" & i) = Prop.Name
    Next
End Sub

.
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,405
Excel Vers. ve Dili
2007 Türkçe
Ben Türkçe kullanıyorum, "Hyperlink base" doğru sonuç veriyor.
Kod:
ThisWorkbook.BuiltinDocumentProperties("Hyperlink base").Value = "X:\"
İlave olarak: Bu durum ayarlamadan sonraki köprülerde etkili oluyor. Ancak ayar öncesi köprüleri değiştirmedi. Yani önceki hyperlink yine göreceli olarak kaldı.
 
Son düzenleme:
Katılım
5 Kasım 2006
Mesajlar
602
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Aşağıdaki kodu çalıştırdığınızda, sayfada C sütununda listelenen verilerden bir tanesi "Hyperlink base" olmalı. (Belki Almanca veya başka versiyonlarda daha değişik bir ifade olabilir, bilmiyorum)

Çalıştırıp, kontrol edebilirmisiniz?


Kod:
Sub Test3()
    For Each Prop In ThisWorkbook.BuiltinDocumentProperties
        i = i + 1
        Range("C" & i) = Prop.Name
    Next
End Sub

.
Bilgisayarım Almanca dili.
Excel ise Türkçe ve Almanca dilide mevcut ve genelde Türkçe kullanıyorum Tr karakter olayından dolayı.
Dün kodunuzu denemiştim ve incelemelerimde köprünün önüne X:\ ekliyordu.Bundan dolayı açılmamıştı.Son kodunuzu birazdan deneyeceğim.
İstiyorsanız Teamvier ile bağlanıp gözlemyebilirsiniz sonucu.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,398
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Team'e gerek yok.

Şöyle de bir deneme yapabilirsiniz.....

Yeni bir "xlsm" dosyası oluşturup, bahsettiğiniz klasöre yerleştirdikten sonra, bu dosyaya 24. mesajdaki kodu ekleyip, çalıştırın.

Sonra, A1 hücresine bir metin girip, buna Bayrak.jpg dosyasını linkleyin.

Aynı dosyaya, hyperlink adresini bulan kullanıcı tanımlı fonksiyonu da yerleştirin ve B1 hücresine fonksiyonu yazın.

Dosya adresinin B1 hücresinde görüntülenmiş olması gerekir.

-----------------------------------

Bu işi, daha önceden oluşturulmuş bir dosyada yapmak için de; 24. mesajdaki kodu çalıştırdıktan sonra A1 hücresini temizleyin ve hyperlink'i tekrar ekleyin. B1 hücresindeki kullanıcı tanımlı fonksiyonun, adresi vermiş olması gerekir.

.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,398
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
........
İlave olarak: Bu durum ayarlamadan sonraki köprülerde etkili oluyor. Ancak ayar öncesi köprüleri değiştirmedi. Yani önceki hyperlink yine göreceli olarak kaldı.

.....
..

-----------------------------------

Bu işi, daha önceden oluşturulmuş bir dosyada yapmak için de; 24. mesajdaki kodu çalıştırdıktan sonra A1 hücresini temizleyin ve hyperlink'i tekrar ekleyin. B1 hücresindeki kullanıcı tanımlı fonksiyonun, adresi vermiş olması gerekir.

.

Ömer Bey, aynı noktayı tespit etmişiz..... Ben de yukarıda 32 No'lu mesajımda bu nedenle eski köprünün kaldırılıp, yeniden kurulması gerektiğini belirtmiştim.

.
 
Katılım
5 Kasım 2006
Mesajlar
602
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Ömer Bey, aynı noktayı tespit etmişiz..... Ben de yukarıda 32 No'lu mesajımda bu nedenle eski köprünün kaldırılıp, yeniden kurulması gerektiğini belirtmiştim.

.
Ben orayı atlamışım galiba ihtiyarlık.
Neyse emeği geçen herkese teşekkürler,her türlü sonuç olumlu.
 
Üst