Kapalı dosyadan veri alma

Katılım
21 Aralık 2016
Mesajlar
3
Excel Vers. ve Dili
2016 TR
Merhaba arkadaşlar,

Elimde yaklaşık 600 tane excel dosyası var. Bunların hepsi aynı klasörde. Benim istediğim bu dosyaları açmadan otomatik olarak her bir dosyanın adını yeni bir excel dosyasında alt alta yazdırmak. Bu isimleri yazdırdıktan sonra her bir dosyadan belirlediğim atıyorum c3 d4 h9 hücrelerini o isimlerin karşısına eklemek. Yalnız mesela h9 hücresi formülden oluşuyor olabilir. O yüzden ordaki formülü değil değeri çekmem lazım.

Böyle birşey mümkün müdür? Veya ne kadarı mümkündür? Bu konuda bana yardımcı olabilir misiniz? ilgilenen arkadaşlara şimdiden teşekkür ederim..
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhaba arkadaşlar,

Elimde yaklaşık 600 tane excel dosyası var. Bunların hepsi aynı klasörde. Benim istediğim bu dosyaları açmadan otomatik olarak her bir dosyanın adını yeni bir excel dosyasında alt alta yazdırmak. Bu isimleri yazdırdıktan sonra her bir dosyadan belirlediğim atıyorum c3 d4 h9 hücrelerini o isimlerin karşısına eklemek. Yalnız mesela h9 hücresi formülden oluşuyor olabilir. O yüzden ordaki formülü değil değeri çekmem lazım.

Böyle birşey mümkün müdür? Veya ne kadarı mümkündür? Bu konuda bana yardımcı olabilir misiniz? ilgilenen arkadaşlara şimdiden teşekkür ederim..
Mümkündür.
Kaynak dosyalarınızın bir kısmını ve hedef dosyanızı buradan link veriniz.:cool:
 
Katılım
21 Aralık 2016
Mesajlar
3
Excel Vers. ve Dili
2016 TR
Mümkündür.
Kaynak dosyalarınızın bir kısmını ve hedef dosyanızı buradan link veriniz.:cool:
Aslında beklerken birşeyler yaptım. Ama bir yerde takıldım.

VB ile klasördeki bütün dosyaları A sütununa yukardan aşağıya listeledim.

='C:\Dosyalar\[fy2005.xlsx]Sayfa1'!$H$9

şöyle bir kod yardımıyla da kapalı dosyadan istediğim hücredeki değeri alıyorum. Ama bu formülde adres kısmında dosya ismini direk yazmak yerine formül yardımıyla o hazırladığım listeden çekmem lazım. Bunu beceremedim.

Yani kısacası şu formülde

='C:\Dosyalar\[fy2005.xlsx]Sayfa1'!$H$9

fy2005.xlsx yazan yere A1 hücresinin değerini yazdırmam gerekiyor.
 
Son düzenleme:
Katılım
31 Aralık 2014
Mesajlar
1,845
Excel Vers. ve Dili
Excel 2010
Merhaba
Ek dosyadaki gibi "Macro4" ile verileri alabilirsiniz.
http://s3.dosya.tc/server9/p6xn18/Desktop.zip.html
Kod:
Private Sub CommandButton1_Click()
[A:C] = Empty
Dim ds, f, dc, a
Set ds = CreateObject("Scripting.FileSystemObject")
Set f = ds.GetFolder(ThisWorkbook.Path & "\Dosyalar\")
Set dc = f.Files
For Each dosya In dc
c = c + 1
Cells(c, 1) = dosya.Name
Cells(c, 2) = ExecuteExcel4Macro("'" & ThisWorkbook.Path & "\Dosyalar\[" & dosya.Name & "]sayfa1'!R3C3")
Cells(c, 3) = ExecuteExcel4Macro("'" & ThisWorkbook.Path & "\Dosyalar\[" & dosya.Name & "]sayfa1'!R4C4")
Cells(c, 4) = ExecuteExcel4Macro("'" & ThisWorkbook.Path & "\Dosyalar\[" & dosya.Name & "]sayfa1'!R9C8")
Cells(c, 1).Select
Next
End Sub
 
Katılım
21 Aralık 2016
Mesajlar
3
Excel Vers. ve Dili
2016 TR
Merhaba
Ek dosyadaki gibi "Macro4" ile verileri alabilirsiniz.
http://s3.dosya.tc/server9/p6xn18/Desktop.zip.html
Kod:
Private Sub CommandButton1_Click()
[A:C] = Empty
Dim ds, f, dc, a
Set ds = CreateObject("Scripting.FileSystemObject")
Set f = ds.GetFolder(ThisWorkbook.Path & "\Dosyalar\")
Set dc = f.Files
For Each dosya In dc
c = c + 1
Cells(c, 1) = dosya.Name
Cells(c, 2) = ExecuteExcel4Macro("'" & ThisWorkbook.Path & "\Dosyalar\[" & dosya.Name & "]sayfa1'!R3C3")
Cells(c, 3) = ExecuteExcel4Macro("'" & ThisWorkbook.Path & "\Dosyalar\[" & dosya.Name & "]sayfa1'!R4C4")
Cells(c, 4) = ExecuteExcel4Macro("'" & ThisWorkbook.Path & "\Dosyalar\[" & dosya.Name & "]sayfa1'!R9C8")
Cells(c, 1).Select
Next
End Sub
Çok teşekkür ederim. İstediğim tam olarak buydu :)
 
Üst