DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Aşağıdaki linkten dosyayı indirin.
Ben 400 adet dosyadan veriyi bu çalışmayla aldım.
Kolaygelsin...
Link: http://www.excel.web.tr/f117/kapaly-dosyalardan-veri-alma-t68879.html
Sub degeryaz59()
Dim dosya As String, deg As String, sat1 As Long
Dim sat2 As Long, sh As Worksheet, i As Long, k As Range
ThisWorkbook.Activate
Sheets("Sayfa1").Select
Application.ScreenUpdating = False
sat1 = 4
dosya = Dir(ThisWorkbook.Path & "\*.xlsx")
Do While dosya <> ""
If Workbooks.Open(ThisWorkbook.Path & "\" & dosya).ReadOnly Then
Workbooks(dosya).Close False
End If
ThisWorkbook.Activate
Set sh = Workbooks(dosya).Sheets("Sayfa1")
sat2 = sh.Cells(Rows.Count, "A").End(xlUp).Row
Set k = sh.Range("A1:A" & sat2).Find(Range("A1").Value, , xlValues, xlWhole)
If Not k Is Nothing Then
Cells(sat1, "A").Value = Replace(dosya, ".xlsx", "")
Cells(sat1, "B").Value = k.Offset(o, 1).Value
sat1 = sat1 + 1
End If
Set k = Nothing
Set sh = Nothing
Workbooks(dosya).Close False
dosya = Dir
Loop
Application.ScreenUpdating = True
MsgBox "İşlem tamamlanmıştır." & vbLf & "evrengizlen@hotmail.com", _
vbOKOnly + vbInformation, Application.UserName
End Sub
deneme.xlsm dosyanızda diğer dosyalarla ayni klasörde olamalıdır.
Abdülhey Bey, yarın dosyanızla ilgilenmeye çalışacağım...
İyi geceler...
Evren Bey cevap vermiş bile...![]()
Saygılar.
Gerekli düzenlemeyi yaptım.Merhaba;
Eğer burdaki olmalıdır ise hata veriyor. Klasör dışına çıkardığım zaman işlem tamam diyor ancak sonucu getirmiyor.
deneme.xls a1 hücresinde "b" değeri var ama diğer sayfalardaki b değerini yazmıyor.
Gerekli düzenlemeyi yaptım.
Dosyayı 4 nolu mesajdan indirebilirisiniz:![]()
İlgili yeri aşağıdaki kod ile değiştiriniz.Şahane. Teşekkürler.
Affınıza sığınarak bir ekleme yapayım.
Şu haliyle excell sayfalarından deneme sayfasına şarta göre veri çağırıyor.
20120518,20120519.xlx ... sayfalarında c,d,e,f .. satırlarında olan verileride deneme.xls sayfasına yazdırmak istesek nasıl bir ekleme yapmamız gerekir ?
Teşekkürler.
If Not k Is Nothing Then
Cells(sat1, "A").Value = Replace(dosya, ".xlsx", "")
Cells(sat1, "B").Value = k.Offset(0, 1).Value
Cells(sat1, "C").Value = k.Offset(0, 2).Value
Cells(sat1, "D").Value = k.Offset(0, 3).Value
Cells(sat1, "E").Value = k.Offset(0, 4).Value
Cells(sat1, "F").Value = k.Offset(0, 5).Value
sat1 = sat1 + 1
End If
İlgili yeri aşağıdaki kod ile değiştiriniz.
Kod:If Not k Is Nothing Then Cells(sat1, "A").Value = Replace(dosya, ".xlsx", "") Cells(sat1, "B").Value = k.Offset(0, 1).Value Cells(sat1, "C").Value = k.Offset(0, 2).Value Cells(sat1, "D").Value = k.Offset(0, 3).Value Cells(sat1, "E").Value = k.Offset(0, 4).Value Cells(sat1, "F").Value = k.Offset(0, 5).Value sat1 = sat1 + 1 End If
dosyanız ektedir.Sayın Orion1 üstadım.
Örnek sayfayı yapmak istediğm çalışmaya enteğre edemedim. Veri aldığım sayfa ile veriyi getirdiğim yerler tutmayınca çuvalladım.
Asıl çalışacağım sayfa örneğim ekte. İlgilenebilirseniz sevinirim.
Sub degeryaz59_V2()
Dim dosya As String, deg As String, sat1 As Long
Dim sat2 As Long, sh As Worksheet, i As Long, k As Range
ThisWorkbook.Activate
Sheets("Geçici Kapanış Bülteni").Select
Application.ScreenUpdating = False
Range("A2:F" & Rows.Count).ClearContents
sat1 = 2
dosya = Dir(ThisWorkbook.Path & "\*.xls?")
Do While dosya <> "" And dosya <> ThisWorkbook.Name
If Workbooks.Open(ThisWorkbook.Path & "\" & dosya).ReadOnly Then
Workbooks(dosya).Close False
End If
ThisWorkbook.Activate
Set sh = Workbooks(dosya).Sheets("Geçici Kapanış Bülteni")
sat2 = sh.Cells(sh.Rows.Count, "A").End(xlUp).Row
Set k = sh.Range("I1:I" & sat2).Find(Range("M1").Value, , xlValues, xlWhole)
If Not k Is Nothing Then
Cells(sat1, "A").Value = Replace(dosya, ".xls", "")
Cells(sat1, "B").Value = sh.Cells(k.Row, "L").Value
Cells(sat1, "C").Value = sh.Cells(k.Row, "T").Value
Cells(sat1, "D").Value = sh.Cells(k.Row, "X").Value
Cells(sat1, "E").Value = sh.Cells(k.Row, "AD").Value
Cells(sat1, "F").Value = sh.Cells(k.Row, "AH").Value
sat1 = sat1 + 1
End If
Set k = Nothing
Set sh = Nothing
Workbooks(dosya).Close False
dosya = Dir
Loop
Application.ScreenUpdating = True
MsgBox "İşlem tamamlanmıştır." & vbLf & "evrengizlen@hotmail.com", _
vbOKOnly + vbInformation, Application.UserName
End Sub