Kaynak dosyanın adresinin değişmesi

Katılım
22 Haziran 2017
Mesajlar
16
Excel Vers. ve Dili
Türkçe Office 2010
Merhabalar,

Konuyu doğru yere açıp açmadığımdan iüpheliyim ama bir konu var çözümü var mı merak ettiğimden yeni başlayanlara atmak istedim.

ana uygulamayı gerçekleştireceğimiz exceli düşünün(deneme1.xlsx) diyelim. "deneme1" dosyasının içerisinde başka bir excel dosyası kaynaından diyelim (deneme2.xlsx" veri transferi gerçekleşiyor.

Yani deneme1 dosyasının içerisindeki bir veya birkaç hücrede deneme2 dosyasının hücrelerine adresleme mevcut. deneme2 dosyasının bilgisayarda kayıtlı olan bölgesini değiştirdiğimde adreslediğim bilgilerin yine de gelmesini istiyorum deneme1 dosyasına. Yani;

='C:\Users\mustafab\Desktop\[deneme2.xlsx]Sayfa1'!$D$4

olarak girilmiş adreste

'C:\Users\mustafab\Desktop\ bölgenin değişmesiyle formülümün bozulmasını istemiyorum aksine yeni taşındığı bölgeye göre güncelleme yapabilir mi?

Eski programlama dillerinde "*" koyularak bilinmeyeni araştırma genelleme durumu mevcuttu. Excelde de böyle birşey mümkün mü?

şimdiden emekleriniz ve yardımlarının için teşekkür ediyorum.
 

Muzaffer Ali

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

Zannediyorum ki dosyanızı başka bir bilgisayara kopyaladığınızda masaüstü klasör yolunu bulmak istiyorsunuz.
Yoksa Excel kaynak dosya bir yere taşındığında bunu anlaması mümkün değil.

Eğer masaüstü klasör yolunu bulmak istiyorsanız aşağıdaki şekilde yapabilirsiniz.

Kod:
Sub Test()
    Dim MasaustuKlasorAdresi As String
    MasaustuKlasorAdresi = CreateObject("WScript.Shell").SpecialFolders("Desktop") & Application.PathSeparator
    
    MsgBox "'" & MasaustuKlasorAdresi & "\[deneme2.xlsx]Sayfa1'!$D$4"

End Sub
 
Katılım
22 Haziran 2017
Mesajlar
16
Excel Vers. ve Dili
Türkçe Office 2010
Merhaba.

Zannediyorum ki dosyanızı başka bir bilgisayara kopyaladığınızda masaüstü klasör yolunu bulmak istiyorsunuz.
Yoksa Excel kaynak dosya bir yere taşındığında bunu anlaması mümkün değil.

Eğer masaüstü klasör yolunu bulmak istiyorsanız aşağıdaki şekilde yapabilirsiniz.

Kod:
Sub Test()
    Dim MasaustuKlasorAdresi As String
    MasaustuKlasorAdresi = CreateObject("WScript.Shell").SpecialFolders("Desktop") & Application.PathSeparator
   
    MsgBox "'" & MasaustuKlasorAdresi & "\[deneme2.xlsx]Sayfa1'!$D$4"

End Sub
Öncelikle yanıtladığınız için teşekkür ederim. Aslında merak ettiğim mümkün değil olarak nitelendirdiğiniz kısım. Aynı isimli dosyanın uzantısı değişse dahi bilgisayarın içinde ilgili dosyayı otomatik bulup işleme devam etmesiydi. Örneğin formülasyon bölümüne "*" koyularak aratma yapılıp yapılamayacağı işimi çözecekti.

Yanıtınıza göre o kısımdan vazgeçtim. Masaüstü ile çözmenin yollarını ayarlayayım diye aslında basit bir örnek üstünden gitmek istemiştim ama sorunum çözülmeyince biraz daha detaylandırma ihtiyacı hissettim.

Benim elimde bir liste mevcut aslında. Özet olarak listede kimin hangi işi hangi tarihte yaptığı, yapılan işin hangi adreste olduğu, marka model, seri no gibi bilgilerin listelendiği bir bölüm. herbir satırın numarası mevcut. bu listeden bilgileri çeken de sertifikalarım olduğunu düşünün ve ben düşeyara ile satır numarasını girerek ilgili çektireceğim sertifika exceline tek numara girerek bütün bilgilerin gelmesini istiyorum. Bunda da tamam onu da oluşturdum. Fakat sorunum tek bilgisayar veya ana herkesin bağlanacağı bir çalışma yapısı olmadığından yani personel sahaya gittiğinde de örneğin listeyi masaüstüne koyduğunda oradaki verileri ilgili hücrelere otomatik olarak çekebilsin istemiştim.

Yukarıda yazdığınız kodları makro ile oluşturup çalıştırdığımda ekranda yalnızca masaüstünde çektireceğim klasörün uzantısına yazan ve tamam dendiğinde kapanan bir uyarı yazısı alıyorum o kadar. yanlış bir şey mi yaptım onu bilemedim. Makro konusunda çok tecrübem yok açıkçası yine daha önce sitedeki yönrgeleri izleyerek oluşturmuştum aynı şekilde yaptım o kadar.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Kod:
='C:\Users\mustafab\Desktop\[deneme2.xlsx]Sayfa1'!$D$4
Dosyanızda bulunan bu satır yerine aşağıdaki satırları eklemeniz gerekiyor. Zannediyorum ki sorun bu şekilde çözülecektir.
Eşittir işaretinden önce ne varsa aynısını aşağıdaki eşittir işaretinin önüne yazmalısınız.

Kod:
    Dim MasaustuKlasorAdresi As String
    MasaustuKlasorAdresi = CreateObject("WScript.Shell").SpecialFolders("Desktop") & Application.PathSeparator
    ="'" & MasaustuKlasorAdresi & "\[deneme2.xlsx]Sayfa1'!$D$4"
Eğer yapamazsanız her iki dosyanızı da ekleyin ben yaparım.
 
Katılım
22 Haziran 2017
Mesajlar
16
Excel Vers. ve Dili
Türkçe Office 2010
Kod:
='C:\Users\mustafab\Desktop\[deneme2.xlsx]Sayfa1'!$D$4
Dosyanızda bulunan bu satır yerine aşağıdaki satırları eklemeniz gerekiyor. Zannediyorum ki sorun bu şekilde çözülecektir.
Eşittir işaretinden önce ne varsa aynısını aşağıdaki eşittir işaretinin önüne yazmalısınız.

Kod:
    Dim MasaustuKlasorAdresi As String
    MasaustuKlasorAdresi = CreateObject("WScript.Shell").SpecialFolders("Desktop") & Application.PathSeparator
    ="'" & MasaustuKlasorAdresi & "\[deneme2.xlsx]Sayfa1'!$D$4"
Eğer yapamazsanız her iki dosyanızı da ekleyin ben yaparım.
Hocam uğraştım ama bir yerlerde hata yapıyorum yada sizleri tam olarak anlayamadım kusura bakmayın. Aslında boş iki tane excel başka hiçbirşey değil yapılıp yapılamayacağını öğrenmek için iki tane içi boş excelde deneme yapmıştım. aşağıdaki linklerden indirebilirsiniz ama içleri zaten açıkçası boş. Neyi yanlış yaptığımı sanırım sizinkini inceleyince ortaya çıkacak.

https://dosya.co/e54q2v0dqnl7/deneme1.xlsm.html
https://dosya.co/a3zn5iw1vki9/deneme1.xlsx.html
https://dosya.co/ouht9d4jhz3w/deneme2.xlsx.html
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Anladığım kadarıyla VBA konusunda çok yenisiniz. Ben şimdi burada anlatmaya kalksam bitmez.
Öğrenmeniz gereken yöntem "kapalı dosyadan veri almak" konu başlıklarını araştırın. Bu konuya yoğunlaşın.

Kolay gelsin.
 
Üst