- Katılım
- 1 Mart 2005
- Mesajlar
- 22,239
- Excel Vers. ve Dili
- Win7 Home Basic TR 64 Bit
Ofis-2010-TR 32 Bit
Bunuda ado kullanarak yaptım.
Diğer yönteme göre daha hızlı çalışıyor.
Dosya ektadir.
Bütün dosyaların ayni klasörde olamsı lazımdır.
Diğer yönteme göre daha hızlı çalışıyor.
Dosya ektadir.
Bütün dosyaların ayni klasörde olamsı lazımdır.
Kod:
Sub ADO_ile_kapali_A_Dosyasından_B_dosyasina_Kayit()
Dim i As Long, k As Long, sh As Worksheet
Dim conn As Object, rs As Object
If Range("F6").Value = "" Then
MsgBox "Lütfen aktarılacak sayfayı Yazınız.", vbCritical, "UYARI"
Range("F6").Select
Exit Sub
End If
Set conn = CreateObject("AdoDb.Connection")
Set rs = CreateObject("AdoDb.Recordset")
conn.Open "Provider=Microsoft.jet.oledb.4.0;data source=" & ThisWorkbook.Path & _
"\A.xls;extended properties=""excel 8.0;hdr=no;"""
Set rs = conn.Execute("Select * from [" & Range("F6").Value & "$A1:K65536]")
If Workbooks.Open(ThisWorkbook.Path & "\B.xls").ReadOnly = True Then
Workbooks("B.xls").Close
End If
ThisWorkbook.Activate
Set sh = Workbooks("B.xls").Sheets(Range("F6").Value)
sh.Range("A1:K100").ClearContents
sh.Range("A1").CopyFromRecordset rs
conn.Close
Set rs = Nothing
Set conn = Nothing
Workbooks("B.xls").Close True
MsgBox "Kapalı A.xls Dosyasında Sayfa1 deki A1:K100 aralığındaki veriler," & vbLf & _
"B.xls dosyasında Sayfa1 A1:K100 aralığına kopyalandı." & vbLf & _
"evrengizlen@hotmail.com", vbOKOnly + vbInformation, "E V R E N"
End Sub
