Soru Düşeyara (VBA ile Dış Kaynaktan)

leonadies

Altın Üye
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
397
Excel Vers. ve Dili
Excel 2016 TR
Değerli üstadlar;

Excel içinde düşeyara gerek formülle, gerek makro ile yapabilmekteyim. Merak ettiğim VBA yolu ile "Hedef Excel" e "Kaynak Excel" den düşeyara ile veri çektirebilir miyiz?
 
Katılım
23 Mart 2017
Mesajlar
336
Excel Vers. ve Dili
Office 2016 TR
VBA ya gerek yok.
İki excel dosyasınıda açın. Hedef Excel dosyasında düşeyara formülü ile ilgili değişkenleri girdiğimiz formül kutucuğunda Tablo Dizisi alanını tıklayın, daha sonra Kaynak Excel dosyasında istediğiniz sayfa, alanı vb. seçiniz.
 

leonadies

Altın Üye
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
397
Excel Vers. ve Dili
Excel 2016 TR
Üstadım belirttiğim gibi formül dışı çözüm arıyorum. Yoksa bu söylediğini formülle zaten yazıyoruz. VBA çözüm gerekli bana
 

Erdem_34

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,392
Excel Vers. ve Dili
OFİS 2013 TÜRKÇE-İNG. 64 BİT
Örnek dosya eklerseniz çözüm üretilebilir. Kapalı dosyadan yapmak istiyorsunuz sanırım.
 

leonadies

Altın Üye
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
397
Excel Vers. ve Dili
Excel 2016 TR
@Erdem_34 Üstadım ekledim. Çalışmamı yansıtan muadil örnektir. Hedef excele Plaka kodunu yazarak kaynak excelden şehir getirmesini sağlamaya çalışıyor olacağız. Birde dosya aynı klasör içinde olmayacak. Ağ üzeriden alacak. Orasını ben uyarlarım sorun değil.
Aslında Kaynak dosya zaman zaman açık olabiliyor. Salt okunurda sorunlar olduğunu biliyorum. Bilmem çözümü olur mu?
Koca internette buna dair örnek bulamadım açıkcası. İnşallah formumuza kazanımı olur.
ADO olayı olursa ona da varım.
 

Ekli dosyalar

Erdem_34

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,392
Excel Vers. ve Dili
OFİS 2013 TÜRKÇE-İNG. 64 BİT
Merhaba,

Aşağıdaki kodu deneyiniz.
Her 2 dosyanın ilk satırına A1 hücresine Plaka , B1 hücresine Şehir yazınız.
WB2 = "kaynak dosya" kısmını kaynak dosyanın nesne adı ile değiştiriniz.

Kod:
Sub demememe()

Set con = VBA.CreateObject("adodb.Connection")

    WB1 = ActiveWorkbook.FullName
    WB2 = "kaynak dosya"
            
    strConnection = _
        "Provider=Microsoft.ACE.OLEDB.12.0;" & _
        "User ID=Admin;" & _
        "Data Source='" & ActiveWorkbook.FullName & "';" & _
        "Extended Properties=""Excel 12.0;hdr=yes"""

    sorgu = _
        "Select t2.[şehir] from [" & WB1 & "].[hedef$] as t1 " & _
        "left join " & _
        "[" & WB2 & "].[Plakalar$] as t2 " & _
        "on t1.[plaka] = t2.[plaka]"

con.Open strConnection

Set rs = con.Execute(sorgu)

Range("B2").CopyFromRecordset rs

End Sub
 
Üst