• DİKKAT

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

VBA Bilgisayar Kullanıcısına Göre Adres Yolu Tanımlama

Katılım
23 Aralık 2014
Mesajlar
15
Excel Vers. ve Dili
2013 Excel 15.0
Merhabalar,

Üzerinde çalıştığım bir ithalat/ihracat raporunda bilgilerin bulunduğu satırlara raporun kaynağını oluşturan Beyanname PDF'leri hyperlink ile bağladım. Daha açık olması aşağıda hyperlink örneğini paylaşıyorum

=HYPERLINK("C:\Users\ONDER\OneDrive XXX. A.Ş \Beyannameler\"&"İTHALAT"&"\"&"20"&LEFT(D228;2)&"\"&D228&".pdf";"Beyanname Softcopy")

Kurduğum sistem sorunsuz olarak çalışıyor fakat şöyle bir problemim var bu rapor onedrive ile oluşturulmuş ortak bir alanda ve raporu ben açtığım zaman hyperlink çalışıyor ve ilgili pdf ulaşıyor. Fakat onedrive'a erişimi olan başka biri raporu açsa bile hyperlinkteki pdf''e erişim sağlayamıyor çünkü erişim sağlamaya çalışan kullanıcının onedrive linki örnek olarak " =HYPERLINK("C:\Users\ONDER\" şeklinde değil =HYPERLINK("C:\Users\FARUK\ şeklinde. Amacım Hyperlink'i raporu açan kim olursa ilgili link'in kendine ismine göre güncellemesi (bu örnekte "FARUK"

Araştırmam sonucunda =INFO("DIRECTORY" şeklinde bir komut var. Bu komut kullanıcının bilgisarındaki documents dosyasına referans veriyor ("C:\Users\onder\Documents\" )

Yapmak istediğim şey ise VBA module olarak yeni bir konum tanımlatmak ve bu komutun sadece sadece ("C:\Users\"kullanıcı adı"\") olarak tanıması bu şekilde olursa raporu FARUK isimli kullanıcı çalıştırdığında bile pdf'e erişebilecek. Bu komutu nasıl yapabilirim fikir ve desteklerinizi bekliyorum.

Aşağıda daha önce internette bulduğum bir VBA'da komut tanımlamasını paylaşıyorum. Bu VBA office kullanıcısının ismini tanımlıyor fakat benim istediğim bilgisayar kullanıcısın ismini tanımlanması. Sanırsam API (Application Programmer’s Interface) fonksiyonu çağırmam lazım fakat beceremedim.


Function GetXLUserName() As String
GetXLUserName = Application.UserName

End Function
 
Application.UserName ofis uygulamaları yüklenirken tanımlanan (daha sonra değiştirilebilir) kullanıcı adıdır.
windows kullanıcı adı ise Environ("UserName") ile bir değişkene atanabilir.



Kod:
klasor = "C:\Users\" Environ("UserName") & "\Documents\"
 
Merhabalar,

Dediğiniz şekilde yaptım fakat modülü insert edip kapattıktan sonra yeniden açtığımda macro güvenlik uyarıları yüzüden kaydetmiyor ve yeniden açtığımız zaman tanımlanan komut modül silindiği için çalışmıyor bunu nasıl engelleyebilirim ?
 
xlsm olarak kaydediyorsunuz değil mi?
 
ayrıca makroların etkinleştirilmesi gerekiyor.
bildiğinizi sanıyorum.
forumda konusu var zaten.
 
şirket bilgisayarı ise ayrıca merkezi kısıtlama da getirilmiş olabilir.
 
Macro Enabled Excel formatında kaydetmem gerekiyormuş şuan sorun çözüldü.

Çok teşekkür ederim yardımlarınız için :)
 
rica ederim. kolay gelsin.
 
Merhaba, MacOs için nasıl tanımlanabilir acaba?
 

kaptırana :D kadar mac kullansam da makrolarına hakim değilim.
Buradaki kodda NameFolder = "desktop folder" değişkenini NameFolder = "users folder" yaparak deneyin diyebilirim sadece.
 
Geri
Üst