Soru Hücrede yazan kelimeyle o excelden veri çekme

Katılım
25 Nisan 2023
Mesajlar
23
Excel Vers. ve Dili
Office 365-TR
Merhabalar, A, B ve C adlı 3 excelimiz olsun ve bunlar masaüstünde aynı klasör içinde. Ben A excelinde C1 hücresine B yazıcam. A1 hücresine hangi formülü yazarsam B exceline gidip A1 hücresindeki veriyi çeksin. C1 hücresine C yazdığımdada C excelindeki A1 hücresindeki veriyi getirsin. Yani C1 hücresinde yazan kelime neyse o addaki excelden veri çeksin. Şimdiden teşekkürler
 

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,840
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
Selamlar
formumuza hoş geldiniz
sorularınızı örnek dosya ile desteklerseniz daha çabuk yanıtlar alırsınız.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,535
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Bu işlem için DOLAYLI fonkisyonu işinize yarayacaktır. Fakat bu fonksiyon kapalı dosyalarda çalışmıyor. Hedef dosyanızın açık olması gerekiyor.

Bu yöntem işinize yaramazsa makro ile çözüm aramanız gerekir.
 
Katılım
25 Nisan 2023
Mesajlar
23
Excel Vers. ve Dili
Office 365-TR
Merhaba,

Bu işlem için DOLAYLI fonkisyonu işinize yarayacaktır. Fakat bu fonksiyon kapalı dosyalarda çalışmıyor. Hedef dosyanızın açık olması gerekiyor.

Bu yöntem işinize yaramazsa makro ile çözüm aramanız gerekir.
Evet =DOLAYLI("'["&S1&".xlsx]Sheet1'!A1") formülü isteğimi karşılıyor ama hedef excelin açık olması gerekiyor. Açık olmadan nasıl yapabilirim. Excelde çok iyi değilim maalesef
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,535
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Makro kullanmanız gerekir.

Adodb ya da ExecuteExcel4Macro ifadeleri ile forumda arama yaparak arşiv konularına erişebilirsiniz.
 
Katılım
25 Nisan 2023
Mesajlar
23
Excel Vers. ve Dili
Office 365-TR
Makro kullanmanız gerekir.

Adodb ya da ExecuteExcel4Macro ifadeleri ile forumda arama yaparak arşiv konularına erişebilirsiniz.
Kod:
DefObj C, E-F, R
Sub vericek()

Range("A:D").ClearContents
Set Rky = CreateObject("adodb.connection")
Set FSO = CreateObject("scripting.filesystemobject")
Set cat = CreateObject("adox.catalog")
For Each evn In FSO.getfolder(ThisWorkbook.Path).Files
If Not evn.Name Like "*" & ThisWorkbook.Name Then
Rky.Open "Provider=Microsoft.ace.oledb.12.0;Data Source=" & _
evn & ";Extended Properties=""Excel 12.0;hdr=no"""
cat.activeconnection = Rky

Set RS = Rky.Execute("Select F1,F2,F3,F4,'','" & FSO.GetBaseName(evn) & "' From [" & İCMAL$ & "$A1:D500]")

Range("A65536").End(3)(2, 1).CopyFromRecordset RS

RS.Close: Rky.Close
End If
Next evn
Set RS = Nothing: Set Rky = Nothing: Sorgu = ""
Set FSO = Nothing: Set evn = Nothing
End Sub
Hocam şöyle bir kod işimi görüyor fakat bir şey daha eklemek istiyorum. Bu kodda A B C D sütunu görünüyor ve F sütununa verinin geldiği excel adı yazıyor. Ben E sütunundaki verilerde gelsin ve verinin geldiği excel adı F de değil A'da yazsın istiyorum. Mümkün mü ?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,535
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sorgu satırını aşağıdaki gibi değiştirip deneyiniz.

C++:
Set RS = Rky.Execute("Select '" & FSO.GetBaseName(evn) & "',F1,F2,F3,F4,F5 From [" & İCMAL$ & "$A1:E500]")
 
Katılım
25 Nisan 2023
Mesajlar
23
Excel Vers. ve Dili
Office 365-TR
Sorgu satırını aşağıdaki gibi değiştirip deneyiniz.

C++:
Set RS = Rky.Execute("Select '" & FSO.GetBaseName(evn) & "',F1,F2,F3,F4,F5 From [" & İCMAL$ & "$A1:E500]")
hocam yine bir sorun oluştu.
-kaydetmeye çalıştığımda resimdeki hatayı veriyor exceli kapatıp açtığımda makro gidiyor https://www.hizliresim.com/3caj2q4
-birde hedef excelde b1 c1 d1 e1 hücresinde

2022/12

2022/09

2022/06

2022/03


yazanları çekmiyor neden?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,535
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Dosyanızı kayıt ederken gelen uyarıya HAYIR diyerek "Makro İçerebilen Excel Çalışma Kitabı" biçiminde kayıt etmelisiniz. Bu aşamadan sonra dosyanızın uzantısı "XLSM" olacaktır. Sonrasında makroyu sorunsuz kullanabilirsiniz.
 
Katılım
25 Nisan 2023
Mesajlar
23
Excel Vers. ve Dili
Office 365-TR
Dosyanızı kayıt ederken gelen uyarıya HAYIR diyerek "Makro İçerebilen Excel Çalışma Kitabı" biçiminde kayıt etmelisiniz. Bu aşamadan sonra dosyanızın uzantısı "XLSM" olacaktır. Sonrasında makroyu sorunsuz kullanabilirsiniz.
peki 2022/12 2021/09 yazan hücreleri çekmedi neden hocam?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,535
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kullandığınız kodlama veri tabanı sorgulama tekniğidir. Belli kurallara uymanız gerekir.

Örnek bir alanda Tarih kullanıyorsanız altındaki hücrelerin hepsi tarih olmak zorundadır.

Karışık veri girişleri için bağlantı satırında IMEX kullanılmaktadır. Tabi yöntemde tüm veriler METİN biçiminde yorumlanır.

Linkleri inceleyebilirsiniz.

 
Katılım
25 Nisan 2023
Mesajlar
23
Excel Vers. ve Dili
Office 365-TR
Kullandığınız kodlama veri tabanı sorgulama tekniğidir. Belli kurallara uymanız gerekir.

Örnek bir alanda Tarih kullanıyorsanız altındaki hücrelerin hepsi tarih olmak zorundadır.

Karışık veri girişleri için bağlantı satırında IMEX kullanılmaktadır. Tabi yöntemde tüm veriler METİN biçiminde yorumlanır.

Linkleri inceleyebilirsiniz.

hocam affınıza sığınarak bir şey daha sormak istiyorum. Yukarda yazdığım kodu çalıştırdım. O koddan sonra gelen verilerde b sütununa çift tıklatmak istiyorum. F2+enter formülü gerekiyor ama diğer formülle nasıl birleştireceğim bilemedim. Bide çalışan F2+enter bulamadım. Yardımcı olursanız çok sevinirim
 
Katılım
25 Nisan 2023
Mesajlar
23
Excel Vers. ve Dili
Office 365-TR
Kod:
Sub test2()
    [B1].Select
    For X = 1 To [B65536].End(3).Row + 1
    Application.SendKeys "{F2}"
    Application.SendKeys "{ENTER}"
    Next
End Sub
bu kod işime yarayacak gibi ama çalışmıyor. Çektiğim veri tarih ve hücre içinde 27-04-2023 şekilde sola yapışık. Ben bu tarihi başka sayfadan düşeyara ile arattığımda YOK diyor. O tarihe çift tıkladığımda sağa yapışık hale geliyor ve 27.04.2023’e dönüşüyor hücre biçimi tarih oluyor. Ben de hepsine tek tek çift tıklayamadığım için bu makroyu kullanacağım
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,535
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Boş bir hücreye 1 yazın. Sonra bu hücreyi kopyalayın. Tarih olan alanı seçip sağ tıklayın. Özel Yapıştır-Değerleri-Çarp işlemlerini yaparak deneyiniz.
 
Katılım
25 Nisan 2023
Mesajlar
23
Excel Vers. ve Dili
Office 365-TR
Boş bir hücreye 1 yazın. Sonra bu hücreyi kopyalayın. Tarih olan alanı seçip sağ tıklayın. Özel Yapıştır-Değerleri-Çarp işlemlerini yaparak deneyiniz.
Kod:
DefObj C, E-F, R
Sub vericek()

Range("A:D").ClearContents
Set Rky = CreateObject("adodb.connection")
Set FSO = CreateObject("scripting.filesystemobject")
Set cat = CreateObject("adox.catalog")
For Each evn In FSO.getfolder(ThisWorkbook.Path).Files
If Not evn.Name Like "*" & ThisWorkbook.Name Then
Rky.Open "Provider=Microsoft.ace.oledb.12.0;Data Source=" & _
evn & ";Extended Properties=""Excel 12.0;hdr=no"""
cat.activeconnection = Rky

Set RS = Rky.Execute("Select '" & FSO.GetBaseName(evn) & "',F1,F2,F3,F4,F5 From [" & İCMAL$ & "$A1:E500]")

Range("A65536").End(3)(2, 1).CopyFromRecordset RS

RS.Close: Rky.Close
End If
Next evn
Set RS = Nothing: Set Rky = Nothing: Sorgu = ""
Set FSO = Nothing: Set evn = Nothing
End Sub

Sub test2()
    [B1].Select
    For X = 1 To [B65536].End(3).Row + 1
    Application.SendKeys "{F2}"
    Application.SendKeys "{ENTER}"
    Next
End Sub
şimdi yanlış anlamadıysam bu kodla aynı klasördeki excelden verileri çektim sonra f2+enter yaptırdım. Sonra sizin dediğiniz işlemi yaptığımda olacak. Peki ben bu klasöre başka bir excel daha eklediğimde makroyu yeniden çalıştırdığımda tekrar boş hücreye 1 yazıp B sütununu seçip Özel Yapıştır-Değerleri-Çarp işlemlerini yapmam mı gerekiyor?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,535
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bahsettiğim işlemi makro kaydet yöntemi ile koda dönüştürebilirsiniz.
 
Katılım
25 Nisan 2023
Mesajlar
23
Excel Vers. ve Dili
Office 365-TR
Bahsettiğim işlemi makro kaydet yöntemi ile koda dönüştürebilirsiniz.
Kod:
DefObj C, E-F, R
Sub vericek()

Range("A:D").ClearContents
Set Rky = CreateObject("adodb.connection")
Set FSO = CreateObject("scripting.filesystemobject")
Set cat = CreateObject("adox.catalog")
For Each evn In FSO.getfolder(ThisWorkbook.Path).Files
If Not evn.Name Like "*" & ThisWorkbook.Name Then
Rky.Open "Provider=Microsoft.ace.oledb.12.0;Data Source=" & _
evn & ";Extended Properties=""Excel 12.0;hdr=no"""
cat.activeconnection = Rky

Set RS = Rky.Execute("Select '" & FSO.GetBaseName(evn) & "',F1,F2,F3,F4,F5 From [" & İCMAL$ & "$A1:E500]")

Range("A65536").End(3)(2, 1).CopyFromRecordset RS

RS.Close: Rky.Close
End If
Next evn
Set RS = Nothing: Set Rky = Nothing: Sorgu = ""
Set FSO = Nothing: Set evn = Nothing
End Sub

Sub CiftTikla()
Dim c As Range
For Each c In Range("B:B")
c.OnDoubleClick = "CiftTiklandi(""" & c.Address & """)"
Next c
End Sub
Sub CiftTiklandi(ByVal h As String)
MsgBox "Hücre " & h & " çift tıklandı!"
End Sub
hocam şöyle bir kod yazdım. Sizce mantıklı mı? Şu an bilgisayarda olmadığım için bilmiyorum. Çalışır mı?
 
Üst