• DİKKAT

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

Veri eşleştirme

Katılım
9 Şubat 2005
Mesajlar
63
Excel Vers. ve Dili
excel 2007 Turkce+ingilizce
Arkadaşlar ekteki dosyada
Sheet 1 A sütununda 2000 adet irsaliye no su var
Sheet 2 A sütünunda 600 adet irsaliye no +B sütununda teslim tarihi var.
Yapmak istediğim,makro yardımı ile Sheeet 2 deki 600 verinin Sheet 1 deki karşılıklarını bulup yalnızca teslim tarhlerini karşılarına yazdırmak.
Sheet 2 deki veriler tex tir.
yardımlarınız için şimdiden teşekkürler.
 
Aşağıdaki kodu deneyin.
Eşleştiremediği durumları tespit etmek içinde(kontrol maksatlıydı) sayfa2'de ok yazdıırdım. o satırı dsonra silersiniz gerekirse

[vb:1:8896289d10]Sub Makro1()
For i = 1 To Sheets(2).Cells(65536, 1).End(xlUp).Row
aranan = Sheets(2).Cells(i, 1)
With Sheets(1).Columns(1)
If WorksheetFunction.CountIf(Columns(1), aranan) > 0 Then
xxx = .Find(What:=aranan, After:=Cells(1, 1), LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False).Row
Sheets(1).Cells(xxx, 5) = Sheets(2).Cells(i, 2)
Sheets(2).Cells(i, 3) = "ok"
End If
End With
Next i
End Sub[/vb:1:8896289d10]
 
Danersin Bey
Çok teşekkür ederim,karşılaştırdıklarını ok lemesi çok daha güzel olmuş.
 
Arkadaşlar
Ekteki formülü ingilizce Excel de çalıştıramadım.
Değiştirilmesi gereken bir yermi var.
yardımlarınız için şimdiden teşekkürler.
 
Bu dil ile ilgili bir sorun değildir, muhtemelen versiyon ile ilgili bir farklılık.
Excel versiyonunuzu yazarsanız (ingilizce) Bu satırda değişiklik yapılması gerekecek sanırım.

xxx = .Find(What:=aranan, After:=Cells(1, 1), LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False).Row
 
Excel 1998 İngilzce-Ofiste
Bugün ilave edebildim.
yardımlarınız için teşekkürler.
 
selamlar

arkadaşlar son bi kodlama kaldı sonra programım sona eriyor yardımcı olursanız sevinirim..

ekteki dosyada cariye tıklıyoruz daha sonra bakiye kontrole tıklıyoruz güncelle dediğimiz zaman exceldeki K.S sayfasının Bsütunundan ismi ve AW sütunundan toplam borcu alıp BAKİYE_KONTROL sayfasında ilgili yerlere atacak devamında TAHSL sayfasında ki isimle eşleştirip kişinin kalan bakiyesini yine BAKİYE_KONTROL sayfasındaki B ve C sütunlarını birbirinden çıkartıp D sütunu kalan Borç hanesine işleyecek...

ne yapmak istediğimi programı açtığınızda Stok butonuna tıklayıp daha sonra Stok Kontrol butonuna tıklayıp Stok Güncelle butonundaki kodları inceleyerek sizler bu işi çok iyi bildiğiniz için anlamanız daha kolay olur şimdiden teşekürler son işlem bu daha sonra ihtiyacı olan arkadaşların kullanması için çok güzel bir program olarak ekleyeceğiz...


Ekli dosyayı görüntüle 21516
 
Selamlar,

Aşağıdaki kodları formunuzdaki ilgili yerlere uygulayıp denermisiniz.

Kod:
Private Sub GÖSTER_Click()
    ListBox1.ColumnHeads = True
    ListBox1.ColumnCount = 5
    ListBox1.ColumnWidths = "70;70;75;70;"
    ListBox1.RowSource = "BAKİYE_KONTROL!A2:E" & [BAKİYE_KONTROL!A65536].End(3).Row
End Sub

Private Sub GÜNCELLE_Click()
    Set SKS = Sheets("K.S")
    Set ST = Sheets("TAHSL")
    Set SBK = Sheets("BAKİYE_KONTROL")
    SBK.Select
    SBK.[A2:D65536].ClearContents
    If SKS.[B2] = "" Then
    MsgBox "HENÜZ VERİ GİRİŞİ YAPILMAMIŞTIR !" & vbCrLf & "GÜNCELLEME YAPAMAZSINIZ !", vbExclamation, "UYARI !"
    Exit Sub: End If
    SON = SKS.[B65536].End(3).Row
    SBK.Range("A2:A" & SON) = SKS.Range("B2:B" & SON).Value
    SBK.Range("B2:B" & SON) = SKS.Range("AW2:AW" & SON).Value
    For X = 2 To [A65536].End(3).Row
    SBK.Cells(X, 3) = WorksheetFunction.SumIf(ST.[A:A], SBK.Cells(X, 1), ST.[B:B])
    SBK.Cells(X, 4) = SBK.Cells(X, 2) - SBK.Cells(X, 3)
    Next
    Cells.EntireColumn.AutoFit
    MsgBox "BAKİYE GÜNCELLEME İŞLEMİ TAMAMLANMIŞTIR.", vbInformation
End Sub
 
çok teşekür ederim SYN COST_CONTROL yardımlarınız için ufak 1 2 derlemeden sonra yeni programımızı sayfamıza ekliyorum...


İYİ ÇALIŞMALAR...
 
bende denedim olmadı

Ya arkadaşlar şu excel eşleştirmesini bende yapamadım.
Bu arada makro kodlarını çok fazla bilmiyorum. bende de
xxx = .Find(What:=aranan, After:=Cells(1, 1), LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False).Row
satırında hata veriyor ancak adım adım çalıştırdığımda aranan doğru bir değer alıyor ama sonra olmuyor neden acaba.

Office 2003 Türkçe bu arada versiyonum
 
Hata değişti

şimdi bende programı kullandım ama hatanın nerde verdiğini buldum. eğer aranan kayıt diğer sayafada yoksa hata veriyor. Bu yüzden buna ne yapmam lazım.
Hata verdiği satır aşağıda.

xxx = .Find(What:=aranan, After:=Cells(1, 1), LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False).Row
 
Geri
Üst