indis, kaçıncı formülü

Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
Altın Üyelik Bitiş Tarihi
21-07-2024
Merhaba;
Cari hesap ve faturalara arasında eşleştirme yapıyorum. Bire bir yani tutarlar eşit olduğunda sorun olmuyor. Bunun yanında turlar arasında ufak farklar olduğunda da eşleştirmeyi yapabilmek istiyorum. Şöyle ki;
Fatura tutarı 1.260 TL ancak bankadan gelen havale tutarı 1.255 TL veya 1.263 TL iki durumda da yani düşük veya yüksek olduğunda da eşleştirmeyi hangi formülle yapabilirim. Elbette eşleştirme için alt ve üst tutarı (5/-5 TL) belirlemek istiyorum.
Banka ekstresindeki tutarları, faturalarla eşleştirerek hesabı kapatmak için.
Mümkünse Excel formülü ile kullanım kolaylığı için ancak daha pratik olabilecekse makro ile de olabilir.
 

Ekli dosyalar

Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
Altın Üyelik Bitiş Tarihi
21-07-2024
Merhaba;
Arşiv konularını inceledim ama benim çalışmama uyan örnek bulamadım. Tolerans başlıklı biraz daha araştırma yaparsam bulurum diye tahmin ediyorum.
 

NADİR YILDIZ

Altın Üye
Katılım
7 Ocak 2006
Mesajlar
1,323
Excel Vers. ve Dili
2016 Türkçe
Altın Üyelik Bitiş Tarihi
09-02-2026
Toleranslarla ilgili Asri bey bana yardımcı olmuştu bir dönem
belki bu konuda da size yardımcı olabilir
 
Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
Altın Üyelik Bitiş Tarihi
21-07-2024
Merhaba; sorumla ilgili bulduklarımı adapte edemeyince CHAT GPT sordum. Derdimi anlatana kadar epey zorlandım ama bir çözüm bulundu. Ancak tam sorunu çözemedi. Kodu paylaşsam düzeltebilir misiniz? Çalışma mantığı Sayfa1 ve Sayfa2'deki C sütunlarına göre karşılaştırma yapıyor ve eşleşen değerleri Sayfa2'nin E F G satırlarına taşıyor. Her rakam tek rakamla eşleşmesi gerekiyor. Ancak göz ardı edilmesi gereken değeri E F G satırına taşıyor ama renklendirerek yok kabul etmemi istiyor. Bu tekrar değerin hiç taşınmaması ve eşleşen değerlerin satır iki den başlaması için nasıl bir güncelleme yapabilirim. İlave olarak K1 hücresine yazacağımız rakamı */- yaparak da ilave makro yapmasın istedim ama bunda epey makro yazmasına rağmen hiç biri olmadı.

Teşekkür ederim.
Kod:
Sub Ekle1()
    Dim wb As Workbook
    Dim ws1 As Worksheet
    Dim ws2 As Worksheet
    Dim LastRow1 As Long
    Dim LastRow2 As Long
    Dim i As Long
    Dim j As Long
    
    Set wb = ThisWorkbook
    Set ws1 = wb.Sheets("Sayfa1")
    Set ws2 = wb.Sheets("Sayfa2")
    
    LastRow1 = ws1.Cells(ws1.Rows.Count, "C").End(xlUp).Row
    LastRow2 = ws2.Cells(ws2.Rows.Count, "C").End(xlUp).Row
    
    For i = 2 To LastRow1
        For j = 2 To LastRow2
            If ws1.Cells(i, "C").Value = ws2.Cells(j, "C").Value And ws1.Cells(i, "C").Interior.ColorIndex <> 3 Then '3=Renkli Hücre
                ws2.Cells(j, "A").Resize(1, 3).Copy ws1.Cells(i, "E")
                ws1.Cells(i, "K").Interior.ColorIndex = 3
                ws2.Cells(j, "C").Interior.ColorIndex = 3
                Exit For
            End If
        Next j
    Next i
    
End Sub
 

Ekli dosyalar

Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
Altın Üyelik Bitiş Tarihi
21-07-2024
Merhaba;
Kod:
Sub Ekle()
    Dim wb As Workbook
    Dim ws1 As Worksheet
    Dim ws2 As Worksheet
    Dim lastRow1 As Long
    Dim lastRow2 As Long
    Dim i As Long
    Dim j As Long
    
    Set wb = ThisWorkbook
    Set ws1 = wb.Sheets("Sayfa1")
    Set ws2 = wb.Sheets("Sayfa2")
    
    lastRow1 = ws1.Cells(ws1.Rows.Count, "C").End(xlUp).Row
    lastRow2 = ws2.Cells(ws2.Rows.Count, "C").End(xlUp).Row
    
    For i = 2 To lastRow1
        For j = 2 To lastRow2
            If ws1.Cells(i, "C").Value = ws2.Cells(j, "C").Value And ws1.Cells(i, "C").Interior.ColorIndex <> 3 Then '3=Renkli Hücre
                ws2.Cells(j, "A").Resize(1, 3).Copy ws1.Cells(i, "E")
                ws1.Cells(i, "K").Interior.ColorIndex = 3
                ws2.Cells(j, "C").Interior.ColorIndex = 3
                Exit For
            ElseIf InStr(ws1.Cells(i, "K").Value, "+/-") > 0 Then
                Dim rng As Range
                Set rng = ws2.Range("C" & j - 1 & ":C" & j + 1)
                If WorksheetFunction.CountIf(rng, Val(ws1.Cells(i, "K").Value) + ws1.Cells(i, "C").Value) > 0 Then
                    ws2.Cells(j, "A").Resize(1, 3).Copy ws1.Cells(i, "E")
                    ws1.Cells(i, "K").Interior.ColorIndex = 3
                    ws2.Cells(j, "C").Interior.ColorIndex = 3
                    Exit For
                End If
            End If
        Next j
    Next i
    
End Sub
Sayfa1'de K1 hücresine yazılan tutarı +/- olarak tolerans tanıyarak işlemi yapıyor.
Sorun çözülmüş oldu.
 
Üst