kodda çözemediği yer

Katılım
1 Şubat 2011
Mesajlar
134
Excel Vers. ve Dili
excel 2007
İyi akşamlar arkadaşlar. Bir dosyadan aşağıdaki kod ile veri çekmek istiyorum. Ancak her bir veri için tek tek dosya seçmemi istiyor. Halbuki dosya aynı tek bir dosya. Nasıl düzenleyebiliriz bu kodu?

Option Explicit

Sub VERİ_AL()
Dim Satır As Long, Sütun As Byte, Son_Satır As Long, Son_Sütun As Byte

Son_Satır = ExecuteExcel4Macro("CountA('" & ThisWorkbook.Path & "\[Kitap1.xls]Sayfa1'!C1)")
Son_Sütun = ExecuteExcel4Macro("CountA('" & ThisWorkbook.Path & "\[Kitap1.xls]Sayfa1'!R1)")

Range(Cells(1, 1), Cells(Son_Satır, Son_Sütun)).ClearContents

For Satır = 1 To Son_Satır
For Sütun = 1 To Son_Sütun
Cells(Satır, Sütun) = ExecuteExcel4Macro("'" & ThisWorkbook.Path & "\[Kitap1.xls]Sayfa1'!R" & Satır & "C" & Sütun & "")
Next
Next

MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Verilerin çekildiği "Kitap1.xls" dosyasının, kodun çalıştırıldığı Excel dosyası ile aynı klasörde olması gerekir...

.
 
Katılım
1 Şubat 2011
Mesajlar
134
Excel Vers. ve Dili
excel 2007
Verilerin çekildiği "Kitap1.xls" dosyasının, kodun çalıştırıldığı Excel dosyası ile aynı klasörde olması gerekir...

.
İkisi de aynı klasörde duruyor. ondan yana sıkıntı yok. Sorun veri çekeceğimiz dosyada 10 tane hücrede veri varsa dosya yolunu 10 defa soruyor. Bir kere sorup geçsin.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Verileri alacağınız dosyanın adı Kitap1.xls ve sayfanın adı Sayfa1 ise, sorun olmaması gerekir.

.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Son tahminim, veri aldığınız dosya ile ilgili.....

Söz konusu Kitap1.xls dosyasını xlsx olarak kaydedip, kodu tekrar dener misiniz ?

Aşağıdaki kodda görüldüğü gibi, orjinal kodlarınızdaki Kitap1.xls yerine Kitap1.xlsx olarak değiştirin....

C#:
Sub VERİ_AL()
Dim Satır As Long, Sütun As Byte, Son_Satır As Long, Son_Sütun As Byte

Son_Satır = ExecuteExcel4Macro("CountA('" & ThisWorkbook.Path & "\[Kitap1.xlsx]Sayfa1'!C1)")
Son_Sütun = ExecuteExcel4Macro("CountA('" & ThisWorkbook.Path & "\[Kitap1.xlsx]Sayfa1'!R1)")

Range(Cells(1, 1), Cells(Son_Satır, Son_Sütun)).ClearContents

For Satır = 1 To Son_Satır
For Sütun = 1 To Son_Sütun
Cells(Satır, Sütun) = ExecuteExcel4Macro("'" & ThisWorkbook.Path & "\[Kitap1.xlsx]Sayfa1'!R" & Satır & "C" & Sütun & "")
Next
Next

MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
.
 
Katılım
1 Şubat 2011
Mesajlar
134
Excel Vers. ve Dili
excel 2007
Son tahminim, veri aldığınız dosya ile ilgili.....

Söz konusu Kitap1.xls dosyasını xlsx olarak kaydedip, kodu tekrar dener misiniz ?

Aşağıdaki kodda görüldüğü gibi, orjinal kodlarınızdaki Kitap1.xls yerine Kitap1.xlsx olarak değiştirin....

C#:
Sub VERİ_AL()
Dim Satır As Long, Sütun As Byte, Son_Satır As Long, Son_Sütun As Byte

Son_Satır = ExecuteExcel4Macro("CountA('" & ThisWorkbook.Path & "\[Kitap1.xlsx]Sayfa1'!C1)")
Son_Sütun = ExecuteExcel4Macro("CountA('" & ThisWorkbook.Path & "\[Kitap1.xlsx]Sayfa1'!R1)")

Range(Cells(1, 1), Cells(Son_Satır, Son_Sütun)).ClearContents

For Satır = 1 To Son_Satır
For Sütun = 1 To Son_Sütun
Cells(Satır, Sütun) = ExecuteExcel4Macro("'" & ThisWorkbook.Path & "\[Kitap1.xlsx]Sayfa1'!R" & Satır & "C" & Sütun & "")
Next
Next

MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
.
Çok teşekkürler sağolun.
 
Üst