Karşılaştırma sorunu

Katılım
17 Ekim 2005
Mesajlar
288
Excel Vers. ve Dili
excel 2010 türkçe
arkadaşlar hem sayı hem harf hem / - gibi işaretleri kapsayan değeri nasıl verdireceğim değişkene.? yokmu bir yardım edecek . acil.
 
Katılım
27 Temmuz 2004
Mesajlar
719
Excel Vers. ve Dili
Excel 2003 Tr
LookAt:=xlWhole yerine LookAt:=xlPart şeklinde deneyin
 
Katılım
17 Ekim 2005
Mesajlar
288
Excel Vers. ve Dili
excel 2010 türkçe
olmadı üstad. farkı verdi sadece
 
Katılım
17 Ekim 2005
Mesajlar
288
Excel Vers. ve Dili
excel 2010 türkçe
long yerine variant yaptığımda dahi sonuç alamıyorum neden olabilir?
 
Katılım
27 Temmuz 2004
Mesajlar
719
Excel Vers. ve Dili
Excel 2003 Tr
eklediğiniz dosyada farklı olarak aratmaya çalıştığınız veriler ile ilgili satır yok bunlarıda içeren bir örnek eklerseniz çözmeye çalışalım.
 
Katılım
17 Ekim 2005
Mesajlar
288
Excel Vers. ve Dili
excel 2010 türkçe
sayfa3 e renkli olarak atmıyor ve karşılaştırmadada hatalı karşılaştırma yapıyor?
 

Ekli dosyalar

Katılım
17 Ekim 2005
Mesajlar
288
Excel Vers. ve Dili
excel 2010 türkçe
burda karşılaştırmayı yaparken sanki ikinci - işaretinden sonrasını görmüyor gibi ?
 
Katılım
27 Temmuz 2004
Mesajlar
719
Excel Vers. ve Dili
Excel 2003 Tr
LookAt:=xlWhole yerine LookAt:=xlPart şeklinde deneyin
Daha önce verdiğim cevap size uymuyor siz xlWhole kullanmak durumundasınız, çünkü her biri farklı değerlere sahip karşılaştırmada hata çıkmasının nedeni bu, diğer bir hata da iki sayfada stok kısmında yazılan değerlerin birbirleriyle birebir eş olmadığı için excelin bul dediğiniz zaman bu verileri bulamaması, ben bir sayfadan diğerine kopyalayıp yapıştırdığım zaman sonuç doğru çıktı.
 
Katılım
17 Ekim 2005
Mesajlar
288
Excel Vers. ve Dili
excel 2010 türkçe
evet öyle sonuç doğru çıkıyor fakat aslında değerler aynı neden kopyadan sonra çalıışyor onu anlayamadım ayrıca araya bir kaç değişik stok yazdığında bunu fark olarak yazıp sorgulamaya devam ettiremezmiyim.?
 
Katılım
27 Temmuz 2004
Mesajlar
719
Excel Vers. ve Dili
Excel 2003 Tr
Muhtemelen bizim fark edemediğimiz bir farklılık var. Araya istediğin kadar yazıp sorgulatabilirsin, tabi bunların iki sayfada da olması lazım çünkü sorgulamayı A sütunlarındaki veriler eşit ise yapıyor ve farklarını alıyor bir sayfada olup da diğer sayfada olmayan veri işleme alınmayacaktır.
 
Katılım
17 Ekim 2005
Mesajlar
288
Excel Vers. ve Dili
excel 2010 türkçe
peki üstad farkları da algılayıp fark olarak yazmasını sağlayamazmıyız zaten sorunumda bu iki farklı listede aynı bu şekilde sorgulatıp farkları döktürmek bunu nasıl başarabilirim. bu kodu ne şekilde revize etmeliyim.
 
Katılım
17 Ekim 2005
Mesajlar
288
Excel Vers. ve Dili
excel 2010 türkçe
Bu iki sütunda hersey aynı olduğu halde neyi farklı görüp algılamıyor a.z. ye herseyi aynı ??
 
Katılım
27 Temmuz 2004
Mesajlar
719
Excel Vers. ve Dili
Excel 2003 Tr
Müsait bir zamanda kodları dediğiniz şekilde düzenelemeye çalışacam, ayrıca iki sütunda a dan z ye aynı değil ilk cevabı yazarken incelememiştim, şimdi inceledim bulamadığı değerlerden biri fazla boşluklar içeriyor, eğer genel olarak böyle bir sorun varsa "Trim" fonksiyonu ile bu durumu aşabilirsiniz.
 
Katılım
17 Ekim 2005
Mesajlar
288
Excel Vers. ve Dili
excel 2010 türkçe
Boşluk göremiyorum nasıl anladınız biri programdan aldığım liste biride excel dosyalarından süzdüğüm liste birbiriyle aynı gibi görünüp nasıl farklı olduklarını çözemedim. İlgin için çok tşk ederim.
 
Katılım
27 Temmuz 2004
Mesajlar
719
Excel Vers. ve Dili
Excel 2003 Tr
Boşluk göremiyorum nasıl anladınız biri programdan aldığım liste biride excel dosyalarından süzdüğüm liste birbiriyle aynı gibi görünüp nasıl farklı olduklarını çözemedim. İlgin için çok tşk ederim.
Boşluklar hücrelerin sonlarındaydı. Diğer hususa gelince dosyayı her ayrı stoğu farklı olarak okuyacak şekilde düzenledim, dosyayı ekliyorum incelerseniz üzerinde konuşuruz.
 

Ekli dosyalar

Katılım
17 Ekim 2005
Mesajlar
288
Excel Vers. ve Dili
excel 2010 türkçe
peki burda sağdaki boşlukları nasıl yok ettireceğim. mesela sayfa1 de sağda 5-6 tane boşluk var
RTrim, (Right Trim)

nasıl uygulayacağım.
 
Katılım
17 Ekim 2005
Mesajlar
288
Excel Vers. ve Dili
excel 2010 türkçe
üstad harikasın tşk ederim yalnız satır satır açıklamasını yaparsan mantığını anlamak için çok faydalı olur benim için.
 
Katılım
27 Temmuz 2004
Mesajlar
719
Excel Vers. ve Dili
Excel 2003 Tr
Aşağıda kodları açıklamalarıyla yazdım.
Kod:
Sub Karsilastir()
Set s1 = Sheets("Sayfa1")
Set s2 = Sheets("Sayfa2")
Set s3 = Sheets("Sayfa3")
Set sf = Sheets("FARK")
'İki boyutlu bir dizi oluşturuyoruz, böylece her stok için 3 tane veri girebileceğiz,
'İlki stoğun adı, 2.si sayfa1 değerleri, 3.sü sayfa2 değerleri
Dim stok(0 To 200, 1 To 3)
Application.ScreenUpdating = False
sf.Range("A2:D65536").ClearContents
s3.Range("A2:D65536").ClearContents

'***************************************
'Yıldızlı kısımlar arasında verileri dizimize alıyoruz.
'Önce sayfa1 dekileri direk diziye alıyorz
'hem stok isimleri hemde sayfa1 değerlerini
For i = 2 To s1.[A65536].End(3).Row
    stok(i - 2, 1) = RTrim(s1.Cells(i, "A"))
    stok(i - 2, 2) = s1.Cells(i, "B")
Next
'Şimdi sayfa2 deki A sütunundakileri önce dizimizdeki elemanlarla karşılaştıracaz
'eğer eşitlik var ise onay değeri False olacak bizde o değeri tekrar diziye eklemeyecez
'ancak o stoğun karşısındaki değeri dizimizin 3 . elemanı olarak alacağız.
k = i - 2
For j = 2 To s2.[A65536].End(3).Row
    onay = True
    For z = 0 To k
        If RTrim(s2.Cells(j, "A")) = stok(z, 1) Then
        onay = False
        stok(z, 3) = s2.Cells(j, "B")
    End If
    Next
'Aşağıda eğer onay true olmuşsa ki bu şu demek yukarıdaki karşılaştırmada hiç
'aynı değere rastlanmamış ki onay false olmamış, böyle olunca bu stoğu dizimize
'yeni eleman olarak aldırıyoruz ve karşısındaki değeri yine 3. eleman olarak aldırıyoruz
    If onay Then
        stok(i - 2, 1) = RTrim(s2.Cells(j, "A"))
        stok(i - 2, 3) = s2.Cells(j, "B")
        i = i + 1
    End If
Next
'****************************************************
'Aşağıda alınan değerleri sayfa3 ve fark sayfasına yazdırıyoruz.
k = i - 3 ' bu satırla dizimizde toplam kaç eleman olmuş onu öğreniyoruz.
For i = 0 To k
    s3.Cells(i + 2, "A") = stok(i, 1)
    s3.Cells(i + 2, "B") = stok(i, 2)
    s3.Cells(i + 2, "C") = stok(i, 3)
    s3.Cells(i + 2, "D") = stok(i, 2) - stok(i, 3)
Next
y = 1
For i = 0 To k
    If stok(i, 2) - stok(i, 3) <> 0 Then
    y = y + 1
    sf.Cells(y, "A") = stok(i, 1)
    sf.Cells(y, "B") = stok(i, 2)
    sf.Cells(y, "C") = stok(i, 3)
    sf.Cells(y, "D") = stok(i, 2) - stok(i, 3)
    End If
Next
s3.Cells.EntireColumn.AutoFit
sf.Cells.EntireColumn.AutoFit
Application.ScreenUpdating = False
MsgBox "Karşılaştırma Tamam....", vbOKOnly, "Karşılaştırma Sonucu"
End Sub
 
Üst