Hocam tek bir excel dosyası xls. xlsm. v.s.Siz klasör mü seçmek istiyorsunuz yoksa tek bir dosya mı?
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Hocam tek bir excel dosyası xls. xlsm. v.s.Siz klasör mü seçmek istiyorsunuz yoksa tek bir dosya mı?
Doğrudur Korhan Hocam,Bu durumda klasör değil sadece o dosyayı seçerek aktarım yapmayı düşündüğünüzü anlıyorum. Doğru mudur?
Birde aktarımda biçimler formüller varsa bunlarda mı aktarılacak yoksa sadece değerler mi aktarılacak?
Hocam birden fazla sayfa olabilir. Sayfa isimleri belli değil, Kapalı dosyada yazılı olan neyse o olmalı.Kapalı dosyada tek sayfamı aktif dosyaya aktarılacak yoksa içinde birden fazla sayfa mı mevcut?
Sayfa/ların adı belli mi?
Evet Hocam.O zaman sayfaları (kaç sayfa varsa) taşı ve kopyala gibi bir sonuç istiyorsunuz anladığım kadarıyla...
Option Explicit
Sub Export_Sheet_In_Selected_Excel_File()
Dim Selected_File As Variant, Source_Wb As Workbook
Dim Target_Wb As Workbook, Sh As Worksheet, Sheets_Count As Integer
Application.ScreenUpdating = False
Set Source_Wb = ThisWorkbook
Application.DisplayAlerts = False
For Each Sh In Source_Wb.Worksheets
If Sh.Name <> "Sayfa1" Then Sh.Delete
Next
Application.DisplayAlerts = True
Selected_File = Application.GetOpenFilename( _
Title:="Lütfen aktarmak istediğiniz excel dosyasını seçiniz...", _
FileFilter:="Excel Files (*.xls*),*xls*")
If Selected_File <> False Then
Set Target_Wb = GetObject(Selected_File)
For Each Sh In Target_Wb.Worksheets
Sheets_Count = Sheets_Count + 1
Sh.Copy After:=Source_Wb.Sheets(Source_Wb.Worksheets.Count)
Next
Target_Wb.Close False
End If
Set Source_Wb = Nothing
Set Target_Wb = Nothing
Application.ScreenUpdating = True
MsgBox "Sayfa aktarımı tamamlanmıştır." & vbCr & vbCr & _
"Aktarılan sayfa sayısı ; " & Sheets_Count
End Sub
[/QUOTE]@1mak1mak,
Aşağıdaki gibi yapabilirsiniz.
Kod:Sub Ado_Kapali() Dim Con As Object, Rs As Object, Sorgu As String Set Con = CreateObject("AdoDB.Connection") Set Rs = CreateObject("AdoDB.RecordSet") Con.Open "Provider=Microsoft.Ace.Oledb.12.0;Data Source=" & ThisWorkbook.Path & "\Gürmen Yatırım.xlsx" & ";Extended Properties=""Excel 12.0;Hdr=no""" Sorgu = "Select * From [Sayfa1$M2:M2]" Rs.Open Sorgu, Con, 1, 1 Range("A2").CopyFromRecordset Rs Rs.Close: Con.Close Sorgu = vbNullString: Set Rs = Nothing: Set Con = Nothing End Sub
Sub Ado_Kapali()
Dim Con As Object, Rs As Object, Sorgu As String
Set Con = CreateObject("AdoDB.Connection")
Set Rs = CreateObject("AdoDB.RecordSet")
Con.Open "Provider=Microsoft.Ace.Oledb.12.0;Data Source=" & _
ThisWorkbook.Path & "\Gürmen Hesap.xlsx" & ";Extended Properties=""Excel 12.0;Hdr=No"""
Sorgu = "Select * From [Sayfa1$F5:F5]"
Rs.Open Sorgu, Con, 1, 1
Range("A3").CopyFromRecordset Rs
Rs.Close
Sorgu = "Select * From [Sayfa1$G15:G15]"
Rs.Open Sorgu, Con, 1, 1
Range("B4").CopyFromRecordset Rs
Rs.Close
Sorgu = "Select * From [Sayfa1$AB3:AB3]"
Rs.Open Sorgu, Con, 1, 1
Range("B6").CopyFromRecordset Rs
Rs.Close
Con.Close
Sorgu = vbNullString
Set Rs = Nothing
Set Con = Nothing
End Sub
Hocam ellrinize sağlık çok Teşekkür ederimDeneyiniz.
C++:Sub Ado_Kapali() Dim Con As Object, Rs As Object, Sorgu As String Set Con = CreateObject("AdoDB.Connection") Set Rs = CreateObject("AdoDB.RecordSet") Con.Open "Provider=Microsoft.Ace.Oledb.12.0;Data Source=" & _ ThisWorkbook.Path & "\Gürmen Hesap.xlsx" & ";Extended Properties=""Excel 12.0;Hdr=No""" Sorgu = "Select * From [Sayfa1$F5:F5]" Rs.Open Sorgu, Con, 1, 1 Range("A3").CopyFromRecordset Rs Rs.Close Sorgu = "Select * From [Sayfa1$G15:G15]" Rs.Open Sorgu, Con, 1, 1 Range("B4").CopyFromRecordset Rs Rs.Close Sorgu = "Select * From [Sayfa1$AB3:AB3]" Rs.Open Sorgu, Con, 1, 1 Range("B6").CopyFromRecordset Rs Rs.Close Con.Close Sorgu = vbNullString Set Rs = Nothing Set Con = Nothing End Sub
Deneyiniz.
Hocam sadece anlamadığım bir şey var 2.dosyadan verileri alırken Kod larda hiçbir fark olmamasına rağmenHocam ellrinize sağlık çok Teşekkür ederim
İlk Kod'daki Dosyadan veriyi almadı onu da Kod'a o dosyayı da ilave ederek 2.ayrı dosyadan verileri kolayca aldım.
Sub Ado_Kapali()
Dim Con As Object, Rs As Object, Sorgu As String
Set Con = CreateObject("AdoDB.Connection")
Set Rs = CreateObject("AdoDB.RecordSet")
Con.Open "Provider=Microsoft.Ace.Oledb.12.0;Data Source=" & _
ThisWorkbook.Path & "\Gürmen Yatırım.xlsx" & ";Extended Properties=""Excel 12.0;Hdr=No"""
Sorgu = "Select * From [Sayfa1$M2:M2]"
Set Rs = Con.Execute(Sorgu)
Range("A2").CopyFromRecordset Rs
Rs.Close
Con.Close
Con.Open "Provider=Microsoft.Ace.Oledb.12.0;Data Source=" & _
ThisWorkbook.Path & "\Gürmen Hesap.xlsx" & ";Extended Properties=""Excel 12.0;Hdr=No"""
Sorgu = "Select * From [Sayfa1$F5:F5]"
Set Rs = Con.Execute(Sorgu)
Range("A3").CopyFromRecordset Rs
Rs.Close
Sorgu = "Select * From [Sayfa1$G15:G15]"
Set Rs = Con.Execute(Sorgu)
Range("B4").CopyFromRecordset Rs
Rs.Close
Sorgu = "Select * From [Sayfa1$AB3:AB3]"
Set Rs = Con.Execute(Sorgu)
Range("B6").CopyFromRecordset Rs
Rs.Close
Con.Close
Sorgu = vbNullString
Set Rs = Nothing
Set Con = Nothing
End Sub
Option Explicit
Sub Import_Data_From_Closed_File()
Dim File_Path As String, File_1 As String, File_2 As String
File_Path = ThisWorkbook.Path & "\"
File_1 = "[Gürmen Yatırım.xlsx]Sayfa1'!"
File_2 = "[Gürmen Hesap.xls]Sayfa1'!"
With Range("A2")
.Formula = "=INDEX('" & File_Path & File_1 & "M2,1,1)"
.Value = .Value
End With
With Range("A3")
.Formula = "=INDEX('" & File_Path & File_2 & "F5,1,1)"
.Value = .Value
End With
With Range("B4")
.Formula = "=INDEX('" & File_Path & File_2 & "G15,1,1)"
.Value = .Value
End With
With Range("B6")
.Formula = "=INDEX('" & File_Path & File_2 & "AB3,1,1)"
.Value = .Value
End With
MsgBox "Your transaction is complete."
End Sub
Hocam MerhabaBu da farklı bir yöntem;
C++:Option Explicit Sub Import_Data_From_Closed_File() Dim File_Path As String, File_1 As String, File_2 As String File_Path = ThisWorkbook.Path & "\" File_1 = "[Gürmen Yatırım.xlsx]Sayfa1'!" File_2 = "[Gürmen Hesap.xls]Sayfa1'!" With Range("A2") .Formula = "=INDEX('" & File_Path & File_1 & "M2,1,1)" .Value = .Value End With With Range("A3") .Formula = "=INDEX('" & File_Path & File_2 & "F5,1,1)" .Value = .Value End With With Range("B4") .Formula = "=INDEX('" & File_Path & File_2 & "G15,1,1)" .Value = .Value End With With Range("B6") .Formula = "=INDEX('" & File_Path & File_2 & "AB3,1,1)" .Value = .Value End With MsgBox "Your transaction is complete." End Sub