DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Sub Kapalıdan_Al_Kapalıya_Ver()
Dim Con As Object, Rs As Object
Dim Fso As Object, Klasor As Object, Dosyalar As Object
Dim Sorgu As String, yol As String, dosya As String
Dim Sutun As Byte
Dim Ac As Workbook
Application.ScreenUpdating = False
On Error Resume Next
Set Con = CreateObject("AdoDb.Connection")
Set Rs = CreateObject("AdoDb.RecordSet")
Set Fso = CreateObject("Scripting.FileSystemObject")
yol = ThisWorkbook.Path
Set Klasor = Fso.getfolder(yol)
Range("B4:B1000").ClearContents
For Each Dosyalar In Klasor.Files
If Dosyalar.Name <> "data.xlsm" Then
dosya = Replace(Dosyalar.Name, ".xlsx", "")
Con.Open "Provider=Microsoft.ace.oleDb.12.0;Data Source=" & _
ThisWorkbook.Path & "\" & dosya & ".xlsx" & _
";Extended Properties=""Excel 12.0;HDR=yes"""
Sorgu = "Select * FROM [Sayfa1$]"
Rs.Open Sorgu, Con, 1, 1
Range("B65536").End(3)(2, 1).CopyFromRecordset Rs
Rs.Close: Con.Close
ThisWorkbook.Sheets(1).Range("b1").Copy
Set Ac = Workbooks.Open(Dosyalar): Ac.Activate
ActiveWorkbook.Sheets(1).Range("E1").PasteSpecial xlPasteValues
Ac.Close True: Range("E1").ClearContents
End If
Next Dosyalar
Columns.AutoFit
Application.CutCopyMode = False
Application.ScreenUpdating = True
Set Con = Nothing: Set Rs = Nothing: Set Fso = Nothing
Set Klasor = Nothing: Set Dosyalar = Nothing: Set Ac = Nothing
yol = vbNullString: dosya = vbNullString
End Sub
O kadar satırdan neden o kısmı merak ettiniz ?
Kayıt setindeki verileri B sütunundaki dolu olan son satırdan itibaren yaz.. demek...Sayın Murat OSMA,
Range("B65536").End(3)(2, 1).CopyFromRecordset Rs
bu satırı açıklayabilir misiniz, buradaki(2,1) ne anlama geliyor acaba?
Konuyu açan sizsiniz, dosya sizin dosya, araya herhangi bir üye girip mesaj yazmadı. "BEN KENDİME UYARLAMAYA ÇALIŞIYORUM" ne demek ? :dusun: :bad:
Bu mesajınıza yanıt verebilirim sadece;
Kayıt setindeki verileri B sütunundaki dolu olan son satırdan itibaren yaz.. demek...
Yardımcı olmak isteyen arkadaşlar olacaktır. İyi günler...k::
Private Sub CommandButton1_Click()
Dim Con As Object, Rs As Object
Dim Fso As Object, Klasor As Object, Dosyalar As Object
Dim Sorgu As String, yol As String, dosya As String
Dim Sutun As Byte
Dim Ac As Workbook
Application.ScreenUpdating = False
On Error Resume Next
Set Con = CreateObject("AdoDb.Connection")
Set Rs = CreateObject("AdoDb.RecordSet")
Set Fso = CreateObject("Scripting.FileSystemObject")
yol = ThisWorkbook.Path
Set Klasor = Fso.getfolder(yol)
Range("A4:E1000").ClearContents
For Each Dosyalar In Klasor.Files
If Dosyalar.Name <> "data.xlsm" Then
dosya = Replace(Dosyalar.Name, ".xlsx", "")
Con.Open "Provider=Microsoft.ace.oleDb.12.0;Data Source=" & _
ThisWorkbook.Path & "\" & dosya & ".xlsx" & _
";Extended Properties=""Excel 12.0;HDR=YES"""
Sorgu = "Select [başlık7] FROM [Sayfa1$]"
Rs.Open Sorgu, Con, 1, 1
Range("E65536").End(3)(2, 1).CopyFromRecordset Rs
Rs.Close: Con.Close
ThisWorkbook.Sheets(1).Range("C1").Copy
Set Ac = Workbooks.Open(Dosyalar): Ac.Activate
ActiveWorkbook.Sheets(1).Range("D2").PasteSpecial xlPasteValues
Ac.Close True: Range("D2").ClearContents
ThisWorkbook.Sheets(1).Range("a65536").End(3)(2, 1) = dosya
End If
Next Dosyalar
Columns.AutoFit
Range("a65536").End(3).ClearContents
Application.CutCopyMode = False
Application.ScreenUpdating = True
Set Con = Nothing: Set Rs = Nothing: Set Fso = Nothing
Set Klasor = Nothing: Set Dosyalar = Nothing: Set Ac = Nothing
yol = vbNullString: dosya = vbNullString
End Sub