• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

vade ve tutara göre cari eşleştirme

Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
iyi günler
Raporlama soncu alınan ve verilen çeklerin raporu, ayrı sayfada da firmaya girip-çıkan çek ve vadelerin raporlaması yapılıyor. aynı tarih ve tutar' lı çekin farklı firmalardan alınabiliyor ve verilebiliyor. vade ve tutara göre firmalara eşleştirmek istiyorum. aynı tarih ve tutar olunca çözemedim, formül veya makro ile çözüm tavsiyelerini talep etmekteyim. Teşekkürler.
not: Borç alınan Çekleri, Alacak çıkan Çekleri göstermektir.
 

Ekli dosyalar

  • çek eşleştirme.xlsx
    çek eşleştirme.xlsx
    68.5 KB · Görüntüleme: 18
  • resim1.jpg
    resim1.jpg
    158.9 KB · Görüntüleme: 6
  • resim2.jpg
    resim2.jpg
    82.4 KB · Görüntüleme: 6
Oması gereken sonucu dosya üzerinden paylaşırmızın.
 
Benzer özellikler olduğu için eşleştirme yapmanız mümkün değil. İşlemleri Çekleri numaralandırıp yapmayı deneyin .
 
Benzer özellikler olduğu için eşleştirme yapmanız mümkün değil. İşlemleri Çekleri numaralandırıp yapmayı deneyin .
Girişe göre
Kod:
Private Sub CommandButton1_Click()
Dim s1 As Worksheet, s2 As Worksheet
Set s1 = Sheets("Sayfa1")
Set s2 = Sheets("Sayfa2")
Set d1 = CreateObject("scripting.dictionary")
Set d2 = CreateObject("scripting.dictionary")
Set d3 = CreateObject("scripting.dictionary")
a = s2.Range("B2:E" & s2.Cells(Rows.Count, 2).End(3).Row).Value
For i = 1 To UBound(a)
    krt = CStr(a(i, 1)) & "|" & CStr(a(i, 2))
    d1(krt) = d1(krt) & "|" & i
    d2(krt) = d2(krt) + 1
Next i
b = s1.Range("A2:B" & s1.Cells(Rows.Count, 2).End(3).Row).Value
ReDim c(1 To UBound(b), 1 To 1)
For i = 1 To UBound(b)
    krt = CStr(b(i, 1)) & "|" & CStr(b(i, 2))
    d3(krt) = d3(krt) + 1
    If d3(krt) <= d2(krt) Then
        sat = Split(d1(krt), "|")(d3(krt))
        c(i, 1) = a(sat, 4)
    End If
Next i
s1.[C2].Resize(UBound(b)) = c
MsgBox "İşlem tamam.", vbInformation
End Sub
bu koda göre giriştekiler eşleşiyor, ayın kodu çıkıştakilere de uygulamak gerekiyor, kodu ayarlaymadım
 
Kod:
Private Sub CommandButton1_Click()
Dim s1 As Worksheet, s2 As Worksheet
Set s1 = Sheets("Sayfa1")
Set s2 = Sheets("Sayfa2")
Set d1 = CreateObject("scripting.dictionary")
Set d2 = CreateObject("scripting.dictionary")
Set d3 = CreateObject("scripting.dictionary")
Set d11 = CreateObject("scripting.dictionary")
Set d22 = CreateObject("scripting.dictionary")
Set d33 = CreateObject("scripting.dictionary")
a = s2.Range("B2:E" & s2.Cells(Rows.Count, 2).End(3).Row).Value
For i = 1 To UBound(a)
    krt = CStr(a(i, 1)) & "|" & CStr(a(i, 2))
    d1(krt) = d1(krt) & "|" & i
    d2(krt) = d2(krt) + 1
    krt2 = CStr(a(i, 1)) & "|" & CStr(a(i, 3))
    d11(krt2) = d11(krt2) & "|" & i
    d22(krt2) = d22(krt2) + 1
Next i
b = s1.Range("A2:E" & s1.Cells(Rows.Count, 2).End(3).Row).Value
ReDim c(1 To UBound(b), 1 To 1)
ReDim cc(1 To UBound(b), 1 To 1)
For i = 1 To UBound(b)
    krt = CStr(b(i, 1)) & "|" & CStr(b(i, 2))
    d3(krt) = d3(krt) + 1
    If d3(krt) <= d2(krt) Then
        sat = Split(d1(krt), "|")(d3(krt))
        c(i, 1) = a(sat, 4)
    End If
    krt2 = CStr(b(i, 4)) & "|" & CStr(b(i, 5))
    d33(krt2) = d33(krt2) + 1
    If d33(krt2) <= d22(krt2) Then
        sat2 = Split(d11(krt2), "|")(d33(krt2))
        cc(i, 1) = a(sat2, 4)
    End If
Next i
s1.[C2].Resize(UBound(b)) = c
s1.[F2].Resize(UBound(b)) = cc
MsgBox "İşlem tamam.", vbInformation
End Sub
 
Geri
Üst