eşleme

Katılım
27 Nisan 2005
Mesajlar
24
ilk olarak herkese merhaba..

sorumun çok karışık olmadığını sanıyorum ama gene de yardımcı olursanız sevinirim.. bir döngü gerekiyor diye düşünüyorum..

örnek dosya içerisindeki "veri1" isimli sheet içerisindeki bilgilerle "veri2" iisimli sheet içerisindeki bilgilerin eşlenmesini istiyorum..

sonuç olarak "veri1" sheeti içerisinde yer alan verilerin yanına "veri2" sheeti içerisinde yer alan bilgilerin süzülüp yazılmasını istiyorum..

yardımlarınız için şimdiden teşekkürler..
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki kodu deneyin.

[vb:1:679e51a344]Sub verial()
Set s1 = Sheets("veri1")
Set s2 = Sheets("veri2")
For a = 4 To s1.[b65536].End(3).Row
sat = s2.[c1:c65536].Find(s1.Cells(a, 2)).Row
s1.Cells(a, 4) = s2.Cells(sat, 2)
s1.Cells(a, 5) = s2.Cells(sat, 5)
Next
End Sub[/vb:1:679e51a344]
 
Katılım
27 Nisan 2005
Mesajlar
24
leventm,
KOD İÇİN TEÞEKKÜR EDERİM AMA "VERİ1"sheet i içerisindeki verilerden birine karşılık gelecek bir veri "veri2" sheet i içerisinde yer almadığında hata veriyor bunu engelleyemez miyiz?

yani bulamadığında atlamasını istiyorum, bunu nasıl yaparız
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki kodu deneyin.

[vb:1:20093e6de8]Sub verial()
on error resume next
Set s1 = Sheets("veri1")
Set s2 = Sheets("veri2")
For a = 4 To s1.[b65536].End(3).Row
sat = s2.[c1:c65536].Find(s1.Cells(a, 2)).Row
s1.Cells(a, 4) = s2.Cells(sat, 2)
s1.Cells(a, 5) = s2.Cells(sat, 5)
Next
End Sub [/vb:1:20093e6de8]
 
Katılım
27 Nisan 2005
Mesajlar
24
ilk önce kodlar için teşekkür ederim..

fakat hata vermesede istemediğim bir bilgiyi oraya yerleştiriyor..
yani bir üst satırındaki veriyi oraya kopyalaması büyük dosyalarda karışıklık yaratıyor zira o veriye ait olacak karşılık oranın boş kalması.. ama bir üstteki veriyi alıyor.. find fonksiyonundan sonra bir eşleme olmaması yani yerinin boş kalması mümkün olursa daha iyi bir sonuç olacak..

mümkünse yardımcı olursanız sevinirim.. teşekkürler
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Bulamadığı bilgiyi boş bırakacaktır, örnek dosyanızda deneyin.
 
Katılım
27 Nisan 2005
Mesajlar
24
leventm,

kod için teşekkür ederim ama örnek dosyada denediğim halde malesef bulamadığı bilginin karşısını boş bırakmıyor. karşılığı olmayan verinin bir üzerindeki verinin bilgilerini kopyalıyor.

find fonksiyonu ile değilde birkaç döngüyü bir arada kullanarak bir sonuç elde edemezmiyiz diye düşünüyorum yardımın için şimdiden teşekkürler.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki gibi deneyin.

[vb:1:0fcfde886c]Sub verial2()
Set s1 = Sheets("veri1")
Set s2 = Sheets("veri2")
For a = 4 To s1.[b65536].End(3).Row
For b = 4 To s2.[c65536].End(3).Row
If s1.Cells(a, 2) = s2.Cells(b, 3) Then
s1.Cells(a, 4) = s2.Cells(b, 2)
s1.Cells(a, 5) = s2.Cells(b, 5)
End If
Next: Next
End Sub
[/vb:1:0fcfde886c]
 
Katılım
27 Nisan 2005
Mesajlar
24
leventm,

çok teşekkür ederim.. eline sağlık..
 
Üst