• DİKKAT

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

Verileri karşılaştırıp farkları göster

Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Merhaba arkadaşlar,
2 farklı sütunda veriler birbirine çok benzemekle birlikte birbirinden küçük farkları olmaktadır. Bunları kod ile belirlemek mümkün mü ? Örneğin
B sütununda : MARMARADAKİ MARKETLERİN SATIŞ TUTARI 11000
D sütununda : MARMARADAKİ MARKETLERİN ALIŞ TUTARI 11000
diye yazılıdır. Kod ile D sütunundaki veriyi

MARMARADAKİ MARKETLERİN ALIŞ TUTARI 11000

şeklinde yazdırmak mümkün mü ! (Kırmızı & Bold & 1 büyük Font)

örnek dosyam linki : http://s3.dosya.tc/server9/8ug4ak/FARKLARI_GOSTER.xls.html
 
Merhaba. Umarım yanlış anlamadım.

Önce;
-- Alt taraftan sayfa adına fareyle sağ tıklayıp KOD GÖRÜNTÜLyi seçin.
-- Açılan VBA ekranında, sağ taraftaki boş alana aşağıdaki kod'u yapıştırın.
Sonra da;
-- VBA ekranındayken F5 tuşuna basarak
veya
-- Sayfaya ekleyeceğiniz bir düğme ile aşağıdaki kod'u ilişkilendirerek bu düğmeye tıklayın.

NOT: Aşağıda kırmızı renklendirdiğim kısımlarda değişiklik yaparak karakter boyutu farkını ve rengini değiştirebilirsiniz.
.
Kod:
[FONT="Arial Narrow"][B]Sub FARKI_RENKLENDİR_BÜYÜT()[/B]
For satır = 3 To [B65536].End(3).Row
If Cells(satır, 4) = "" Then Exit For
eski = Cells(satır, 2).Characters(Start:=1, Length:=1).Font.Size
Cells(satır, 4).Font.Size = eski: Cells(satır, 4).Font.Color = vbBlack:: Cells(satır, 4).Font.Bold = False
For harf = 1 To Len(Cells(satır, 2))
    If Mid(Cells(satır, 2), harf, 1) <> Mid(Cells(satır, 4), harf, 1) Then
    With Cells(satır, 4).Characters(Start:=harf, Length:= _
        Application.WorksheetFunction.Find(" ", Cells(satır, 4), harf) - harf + 1).Font
        .Size = eski [B][COLOR="Red"]+ 4[/COLOR][/B]: .Color = [B][COLOR="red"]vbRed[/COLOR][/B]: .Bold = True: End With: Exit For: End If: Next: Next
[B]End Sub[/B][/FONT]
 
Üstadım Ömer Baran, elinize emeğinize sağlık, ilginize çok teşekkür ediyorum. Kod ile ilgili birkaç hususu bilginize sunayım :

** Farklılık 2. (sağdaki) verinin son kelimesinde ise en sağda bir boşluk olmazsa kod hata veriyor.
** Farklılığı yakaladığı noktadan itibaren o kelimenin sağda bulunan tüm karakterleri doğru olsalar da değiştiriyor.
** Bir hücrede 1 den fazla kelimede farklılık varsa soldan itibaren ilk hatalı kelimede işlem yapıyor.

Ancak kod bu haliyle bile muhteşem, elinize, aklınıza sağlık Üstadım.
 
Tekrar merhaba.

Belgenize Sayfa1 adını taşıyan boş bir sayfa ekleyerek aşağıdaki kod'u dener misiniz?
.
Kod:
[FONT="Arial Narrow"][B]Sub FARKI_RENKLENDİR_BÜYÜT2()[/B]
Set k = Sheets("KAYIT"): Set s1 = Sheets("Sayfa1")
s1.Rows("1:2").Delete Shift:=xlUp
    For satır = 3 To k.[B65536].End(3).Row
        eski = Cells(satır, 2).Characters(Start:=1, Length:=1).Font.Size
        With k.Cells(satır, 4)
            .Font.Size = eski: .Font.Color = vbBlack: .Font.Bold = False: End With
        k.Cells(satır, 2).Copy s1.[A1]: k.Cells(satır, 4).Copy s1.[A2]
        s1.Range("A1:A2").TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Space:=True
        For sut = 2 To s1.[IV1].End(1).Column
                If sut = 2 Then baş = 1
                If sut > 2 Then baş = baş + Len(s1.Cells(2, sut - 1)) + 1
            If s1.Cells(1, sut) <> s1.Cells(2, sut) Then
                With s1.Cells(2, 1).Characters(Start:=baş, Length:=Len(s1.Cells(2, sut)) + 1).Font
                    .Size = eski + 4: .Bold = True: .Color = 255: End With: End If: Next
s1.Cells(2, 1).Copy k.Cells(satır, 4): s1.Rows("1:2").Delete Shift:=xlUp: Next
[B]End Sub[/B][/FONT]
 
tekrar çok teşekkür ediyorum Ömer Baran üstadım. 2. kod ile sonda boşluk olmaması sorunu hallolmuş. Bir de sadece farklı olanları işaretlese fevkaledenin fevkinde olurdu.
 
Ben kelime bazında düşünmüştüm, harf bazında işlem mi istiyorsunuz acaba?
Örneğin;
-- B sütununda ikinci kelime piLAV,
-- D sütununda ikinci kelime ise çekosLAVakyalılaştıramadıklarımızdan
kelimesi var.
Bu durumda; yapılması gereken işlem nedir?

-- Noktalama işaretlerinin (?, ! vs. malum bunlar kelimeye bitişik yazılır) durumu,
-- Soru kelimelerindeki soru ekinin ayrı yazılması (çekoslavakyalılaştıramadıklarımızdan mısınız?)
-- aynı kelimenin farklı sırada olması (B sütununda ikinci kelime LAV, D sütununda üçüncü kelime LAV gibi)
durumlar da olabilir ve sanırım isteğiniz beni aşacak gibi görünüyor.
.
 
üstad emeklerin için çok teşekkürler. olmuyorsa tabii yapacak birşey yok. Bu kod verdiğiniz örnekteki gibi büyük farklar değil aşağıdaki gibi küçük farklar için kullanmayı düşünüyoruz.

B sütununda : MARMARADAKİ MARKETLERİN SATIŞ TUTARI 11000
D sütununda : MARMARADAKİ MARKETLERİN ALIŞ TUTARI 11000
 
Örnek belgenizde;

-- gerçek belgenizden ve farklı durumları içeren satırlar olsaydı,
-- aranacak/karşılaştırılacak kelime listesi gibi bir şey olsaydı,
-- SATIŞ/ALIŞ örneği gibi farklı olan kelime bulunduktan sonra,
bu kez bu kelimeye sağdan sola doğru karakter karakter bakılması her zaman geçerlidir deseydiniz,

farklı ve tam istediğinizi karşılayacak alternatifler üretilebilir sanırım.
.
 
üstad farklar belirli değil ama genelde tek karakter olmasını bekliyoruz. örneğin 2 yerine 5 olacak gibi örneğin.
 
Ancak, örnek belgenizde SATış/ALış için üç karakter farklı.
Söylediğim gibi; tüm seçenekleri karşılayacak bir kural veya
belli ve net istisnaları olan bir kural söyleyebilirseniz,
başka alternatif çözümler de üretilebileceğini düşünüyorum.

Sağlıcakla.
 
anladım üstad, sağlık olsun. Örnekte 3 karakter olması farklılığın belirginleştirilmesi için.
 
Geri
Üst