İki Listeyi Belirli kriterlere göre karşılaştırma

tigiy

Altın Üye
Katılım
31 Aralık 2013
Mesajlar
138
Excel Vers. ve Dili
2019-Türkçe
Altın Üyelik Bitiş Tarihi
11-09-2025
Hocam denedim sonuç aynı bir değişiklik yok denediğim dosya ekte
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,165
Excel Vers. ve Dili
2019 Türkçe
Yeni dosya ekte.

Kodları yeniledim ve Hücre formatı genel olarak ayarlandıktan sonra oldu. Bir de siz deneyin.

Karşılaştırmanın kısa sürmesi için listeyi azalttım.

"sayfa 1 de satır 260 ile sayfa 2 de satır 316" demiştiniz şimdi doğru sonuç veriyor.
 

Ekli dosyalar

tigiy

Altın Üye
Katılım
31 Aralık 2013
Mesajlar
138
Excel Vers. ve Dili
2019-Türkçe
Altın Üyelik Bitiş Tarihi
11-09-2025
Hocam sizin gönderdiğiniz son örneği inceledim ancak hala aynı şekilde devam ediyor. Karşılaştırma yaptım sonuç aynı. Karşılaştırma yapmadan baktım direk nasıl gönderdiyseniz o şekilde inceledim sonuç yine aynı şekilde hatalı.

örneğin 195,16 1. sayfada 1 tane iken 2 sayfada 2 tane

atıyorum 2. sayfadaki 25. satırdaki 195,16 bire bir yani "Y" ikisinede "Y" yazıyor döngü sonra devam ediyor 2. sayfada 2. 195,16 yı buldu ama bunu fatura no farklı ise fatura no farklı yazıyor 2. sayfaya bu da ok. Sorun son bulduğunu 1. sayfadaki daha önceden "Y" yazdığı 195,16 ile değiştiriyor onuda fatura no farklı yazıyor.

Belkide 1. sayfadaki sonuç dolu olarak gördüğünde hiç bir işlem yapmasa sorun çözülecek diye düşünüyorum. Umarım anlatabilmişimdir.

Hocam bu arada bıkmadan yardım ettiğin için ayrıca teşekkür ediyorum
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,165
Excel Vers. ve Dili
2019 Türkçe
verdiğiniz örnek satırda "sayfa 1 de satır 260 ile sayfa 2 de satır 316"

tutar
1. sayfada : "32677,78" yazıyor
2. sayfada : " 32677,78 " şeklinde boşluklar ile yazıyor

Excelde bakınca boşluk yok ama VBA da bakınca boşluk var.

Onun için birbirinden farklı kabul ediyor.

Excelde =C260=C316 Birbirine eşit
fakat VBA da birinde boşluk var gördüğünden eşit değil diyor.

En başından beri bu sorunu çözmeye çalıştım. Çıkamadım işin içinden.
 
Son düzenleme:

tigiy

Altın Üye
Katılım
31 Aralık 2013
Mesajlar
138
Excel Vers. ve Dili
2019-Türkçe
Altın Üyelik Bitiş Tarihi
11-09-2025
verdiğiniz örnek satırda "sayfa 1 de satır 260 ile sayfa 2 de satır 316"

tutar
1. sayfada : "32677,78" yazıyor
2. sayfada : " 32677,78 " şeklinde boşluklar ile yazıyor

Excelde bakınca boşluk yok ama VBA da bakınca boşluk var.

Onun için birbirinden farklı kabul ediyor.

Excelde =C260=C316 Birbirine eşit
fakat VBA da birinde boşluk var gördüğünden eşit değil diyor.

En başından beri bu sorunu çözmeye çalıştım. Çıkamadım işin içinden.
Ama hocam sizin en son gönderdiğiniz "örnek-3(1).xls" dosyasında herşeyi aynı görmüş belirttiğiniz satırlar için.

Bence sorun benim açıklamaya çalıştığım gibi peki benim önerdiğim çözümü yazma şansımız nedir?
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,165
Excel Vers. ve Dili
2019 Türkçe
En son gönderdiğim dosyada makroları F8 e basarak manuel çalıştırdım böyle yapınca sorun olmuyor. Hatta manuelden sonra kodları otomatik çalıştırınca da sorun olmuyor. Burada Excel in bir hatası gibi geliyor bana. Bu sorunu aşmadan sizin değindiğiniz konuya çözüm bulmak işe yaramayacak. Çünkü dediğim gibi aynı veriye sahip iki hücreyi eşit görmüyor.
 

tigiy

Altın Üye
Katılım
31 Aralık 2013
Mesajlar
138
Excel Vers. ve Dili
2019-Türkçe
Altın Üyelik Bitiş Tarihi
11-09-2025
En son gönderdiğim dosyada makroları F8 e basarak manuel çalıştırdım böyle yapınca sorun olmuyor. Hatta manuelden sonra kodları otomatik çalıştırınca da sorun olmuyor. Burada Excel in bir hatası gibi geliyor bana. Bu sorunu aşmadan sizin değindiğiniz konuya çözüm bulmak işe yaramayacak. Çünkü dediğim gibi aynı veriye sahip iki hücreyi eşit görmüyor.

Hocam F8 ile çalıştırma adım adım gitmek ölüm resmen en azından benim önerdiğimi yazmayı deneseniz tabi eğer zahmet olmazsa. Yok uğraşamam derseniz anlarım
 

tigiy

Altın Üye
Katılım
31 Aralık 2013
Mesajlar
138
Excel Vers. ve Dili
2019-Türkçe
Altın Üyelik Bitiş Tarihi
11-09-2025
Hocam ya da yeni bir örnek ekledim tamamen farklı bunu yapabilir miyiz?
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,165
Excel Vers. ve Dili
2019 Türkçe
Son verdiğiniz örneğe bakılırsa sorunun ne olduğunu anlamadınız.

Eki inceleyin



Değer2 nin aldığı değere bakar mısınız?

Range("").text deyince başına ve sonuna boşluklar ekliyor ve hücre karşılaştırmada eşitsizlik var diyor.

İşin enteresan tarafı
Range("").Value deyince yada diğerlerinde eşit görünüyor ama kodları çalıştırınca eşit görmüyor. Manuel (F8 ile) çalıştırınca eşit görüyor.

Hücre formatlarını birebir değiştirince de sonuç değişmiyor. Sadece F8 ile çalıştırınca sorun düzeliyor.

Son olarak bir şey sormak istiyorum listelerdeki verileri nereden alıyorsunuz. El ile girmiyorsunuz değil mi?
 

tigiy

Altın Üye
Katılım
31 Aralık 2013
Mesajlar
138
Excel Vers. ve Dili
2019-Türkçe
Altın Üyelik Bitiş Tarihi
11-09-2025
Son verdiğiniz örneğe bakılırsa sorunun ne olduğunu anlamadınız.

Eki inceleyin



Değer2 nin aldığı değere bakar mısınız?

Range("").text deyince başına ve sonuna boşluklar ekliyor ve hücre karşılaştırmada eşitsizlik var diyor.

İşin enteresan tarafı
Range("").Value deyince yada diğerlerinde eşit görünüyor ama kodları çalıştırınca eşit görmüyor. Manuel (F8 ile) çalıştırınca eşit görüyor.

Hücre formatlarını birebir değiştirince de sonuç değişmiyor. Sadece F8 ile çalıştırınca sorun düzeliyor.

Son olarak bir şey sormak istiyorum listelerdeki verileri nereden alıyorsunuz. El ile girmiyorsunuz değil mi?

sanırım ben anlamamışım gerçekten. Bu F8 ile yapmak çok uzun ve işi mi görmüyor açıkcası

Peki son verdiğim örnekte istediklerimizi yapabilir miyiz?

Verileri el ile girmiyorum rapor o şekilde geliyor ben sadece kopyala yapıştır yapıyorum.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,165
Excel Vers. ve Dili
2019 Türkçe
Peki son verdiğim örnekte istediklerimizi yapabilir miyiz?
Yapamayız çünkü birbiriyle eşit olan hücreleri eşeleştiremezken eşit olmayanları(birbirine yakın değerleri) hiç eşleştiremeyiz.

Ben çözüm bulamıyorum. Üzgünüm iyi çalışmalar.
 

tigiy

Altın Üye
Katılım
31 Aralık 2013
Mesajlar
138
Excel Vers. ve Dili
2019-Türkçe
Altın Üyelik Bitiş Tarihi
11-09-2025
Anladım hocam peki hücreleri eşit gibi düşünüp mantık olarak da olsa kodu paylaşsanız ben belki hücrelerde oynamalar yaparım.
 

numan şamil

Destek Ekibi
Destek Ekibi
Katılım
27 Ocak 2011
Mesajlar
1,231
Excel Vers. ve Dili
Ofis 2013 Türkçe
sanırım ben anlamamışım gerçekten. Bu F8 ile yapmak çok uzun ve işi mi görmüyor açıkcası

Peki son verdiğim örnekte istediklerimizi yapabilir miyiz?

Verileri el ile girmiyorum rapor o şekilde geliyor ben sadece kopyala yapıştır yapıyorum.
Merhaba
Rapor şeklinde gelen verileri kopyalayıp yapıştırdığınız sutuna Korhan beyin aşağıdaki kodlarınızı uygulayıp sonra makrolarınızı çalıştırıp denermisiniz
Not: kırmızı yerleri dosyanızdaki verilerin olduğu sutuna göre değiştiriniz.
Kod:
Sub Boşluk_Temizle()
    Dim Hücre As Range
    Application.ScreenUpdating = False
    For Each Hücre In Range([COLOR="Red"]"X2:Z" & [Y65536].[/COLOR]End(3).Row)
    Hücre.Value = Trim(Replace(Trim(Hücre.Value), Chr(160), ""))
    Next Hücre
    Application.ScreenUpdating = True    
End Sub
 

tigiy

Altın Üye
Katılım
31 Aralık 2013
Mesajlar
138
Excel Vers. ve Dili
2019-Türkçe
Altın Üyelik Bitiş Tarihi
11-09-2025
Merhaba
Rapor şeklinde gelen verileri kopyalayıp yapıştırdığınız sutuna Korhan beyin aşağıdaki kodlarınızı uygulayıp sonra makrolarınızı çalıştırıp denermisiniz
Not: kırmızı yerleri dosyanızdaki verilerin olduğu sutuna göre değiştiriniz.
Kod:
Sub Boşluk_Temizle()
    Dim Hücre As Range
    Application.ScreenUpdating = False
    For Each Hücre In Range([COLOR="Red"]"X2:Z" & [Y65536].[/COLOR]End(3).Row)
    Hücre.Value = Trim(Replace(Trim(Hücre.Value), Chr(160), ""))
    Next Hücre
    Application.ScreenUpdating = True    
End Sub

dalgalikur hocamın verdiği son örnek için sizin verdiğiniz kodları kullandım sonuç yine aynı bence benim söylediğim hatadan kaynaklanıyor.

dalgalikur hocamın söylediği hatayı yani boşluk hatası sizin verdiğiniz kod ile çözüldü. ekran görüntüsü ekte mevcut ayrıca denediğim örneğide eke koyuyorum.
 

Ekli dosyalar

numan şamil

Destek Ekibi
Destek Ekibi
Katılım
27 Ocak 2011
Mesajlar
1,231
Excel Vers. ve Dili
Ofis 2013 Türkçe
İlgili kısmı şeklinde düzeltip denermisiniz
Kod:
For Each Hücre In Range("A2:C" & [[COLOR="Red"]C65536[/COLOR]].End(3).Row)
 

tigiy

Altın Üye
Katılım
31 Aralık 2013
Mesajlar
138
Excel Vers. ve Dili
2019-Türkçe
Altın Üyelik Bitiş Tarihi
11-09-2025
İlgili kısmı şeklinde düzeltip denermisiniz
Kod:
For Each Hücre In Range("A2:C" & [[COLOR="Red"]C65536[/COLOR]].End(3).Row)
Hocam sonuçlar hala hata ama dalgalikur hocam dediği hata düzelti hepsini "variant/String" olarak görüuyor

Hata BURADA belirttiğim sebepten kaynaklanıyor bence.

Eğer hücre sonuç dolu ise 2. döngüde orayı atlası sorun çözülecek sanırım
 

Ekli dosyalar

numan şamil

Destek Ekibi
Destek Ekibi
Katılım
27 Ocak 2011
Mesajlar
1,231
Excel Vers. ve Dili
Ofis 2013 Türkçe
Sub Boşluk_Temizle() kodunu her iki sayfaya da uygularmısınız
 

numan şamil

Destek Ekibi
Destek Ekibi
Katılım
27 Ocak 2011
Mesajlar
1,231
Excel Vers. ve Dili
Ofis 2013 Türkçe
Merhaba
Sayfa1(Test )Sayfası İçin ekli dosyayı ve modül 4 deki
Kodları inceler misiniz
 

Ekli dosyalar

Son düzenleme:

tigiy

Altın Üye
Katılım
31 Aralık 2013
Mesajlar
138
Excel Vers. ve Dili
2019-Türkçe
Altın Üyelik Bitiş Tarihi
11-09-2025
Merhaba
Sayfa1(Test )Sayfası İçin ekli dosyayı ve modül 4 deki
Kodları inceler misiniz
Hocam öncelikle örnek için sağolun ama sizinkide hatalı ve sadece 1. sayfaya sonuçları yazıyor. Ben dalgalikur hocamın yaptığı şekilde doğru sonuçları arıyorum.

Daha iyi anlatabilmek için çok basit bir örnek ekte mevcut.

Açıklamam gerekirse burda 1. sayfade sonuç bölümünde 2. satır için "Tarih ve Tutar tutuyor Fatura numarası Farklı" ancak "Y" yazmalıydı
yani ilk bulduğu belirlenen şartları değil aşağılarda varsa "Y" aramalı yoksa "Tarih ve Tutar tutuyor Fatura numarası Farklı" yazmalı

Sayfa 2 de ise doğru sonuç veriyor ama aynı mantığı orada da kurmalı
 

Ekli dosyalar

Üst