KApALI DOSYALARDAN ALMA (10 YIL)

mars2

Altın Üye
Katılım
2 Eylül 2004
Mesajlar
553
Excel Vers. ve Dili
2016 - Türkçe
2019 - Türkçe
Altın Üyelik Bitiş Tarihi
26-03-2026
İyi Günler;
1 (bir) dosyadan değil, yıllar toplamı klasörü içinde bulunan yıllara ait dosyalardan veri almak istiyorum.

Her yıla ait veriler farklı çalışma kitbında bulunmak olup, "toplam" sayfasında ise müşterilerin hangi ay ne kadar ödeme yaptığı ve yıllık toplamları bulunmaktadır.

Bu yıllardan farklı olarak ayrı çalışma kitabında (yıllar toplamı) yapılan tabloda ise yılların ay ve toplamını tek bir tabloda almak istiyorum. Hangi yıl ve ayda ne kadar ödeme yaptığını, eksik ödemede bulunup bulunmadığını takip etmek için. Bu çalışma kitabındaki tablonun bulunduğu sayfadaki B1 hücresine müşterinin adını yazılınca ay/yıl bu hücrelere aktaran makro veya buna ait örnek için şimdiden teşekkürler.
örnek klasör ektedir.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,314
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
>Aşağıdaki kodu sonuçların geleceği sayfanın kod penceresinde kullanın.
>Büyük/küçük harf duyarlı değildir ancak kritere ( B1 hücresi ) Türkçe harf yazmayın.
>"Yıllar toplamı" klasörünü ben "C:\" altında varsaydım. Gerçek yolu kendinize göre değiştiriniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$1" Then Exit Sub

Dim arr() As Variant, ADOcn As Object, ADOrs As Object, i%, j%
[COLOR=Navy][B]Const iPath As String = "C:\Yıllar toplamı\"[/B][/COLOR]

On Error Resume Next
arr = Array( _
        "1997", "1998", "1999", "2000", "2001", "2002", "2003", "2004", _
        "2005", "2006", "2007", "2008")

Set ADOcn = CreateObject("ADODB.Connection")
Set ADOrs = CreateObject("ADODB.Recordset")

[b7:m18].ClearContents

For i = 0 To UBound(arr)
    ADOcn.Open _
        "Driver={Microsoft Excel Driver (*.xls)};Dbq=" & _
           iPath & arr(i) & ".xls"
           
    ADOrs.Open _
            "Select * From [toplam$] Where [Ad Soyad] Like '" & [b1] & "'", ADOcn
            
    For j = 1 To 12
        Cells(j + 6, i + 2) = ADOrs(j)
    Next
    
    ADOrs.Close
    ADOcn.Close
Next

Set ADOrs = Nothing
Set ADOcn = Nothing
Erase arr
End Sub
 
Son düzenleme:

mars2

Altın Üye
Katılım
2 Eylül 2004
Mesajlar
553
Excel Vers. ve Dili
2016 - Türkçe
2019 - Türkçe
Altın Üyelik Bitiş Tarihi
26-03-2026
Say&#305;n Zeki G&#252;rsoy;

cevab&#305;n&#305;z i&#231;in te&#351;ekk&#252;rler. Ancak dosyay&#305; da eklerseniz sevinirim.
 

bluefalcon

Altın Üye
Altın Üye
Katılım
22 Aralık 2005
Mesajlar
418
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
03.12.2025
S&#252;per bi&#351;ey bu yahu.Ellerinize sa&#287;l&#305;k...
 
Üst