• Foruma hoş geldin 👋 Ziyaretçi

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Çözüldü Yapamadığım Bir Tarama Makrosu

Bu sorun verilen destek sayesinde çözüme ulaştırılmıştır.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

ArasKo

Bronz Üye
Kullanıcı Bilgileri
Katılım
8 Mar 2023
Mesajlar
64
Aldığı beğeni
6
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan
Merhaba. Belli kriterleri sağlayan hücreleri birleştirmek için oldukça basit bir makroya ihtiyacım vardı. Ekteki dosyayı görüyorsunuz A ve B sütunlarında "3,4,5,20" formatında rakamlar yer almakta. Bir de "ortak değerler" adı altında bir takım rakamlar var tabloda en sağda paylaştım. Yapılacak olanlar şunlar:

  • Tabloda yan tarafta "Ortak değerler" adında "3,4,5,7" rakamları var.
  • A2 ile B2' den başlayıp en sona kadar olan tüm hücreler kıyaslanacak. Sonra A3 ile B2' den itibaren tüm hücreler kıyaslanacak ve bu, A' daki tüm hücreler için yapılacak. Aşağıdaki a ve b kurallarına uygun olan hücreler aynı hücrede birleştirilip listelenecek
a) A' daki bir hücrede yer alan ortak değerlerin aynısı, B' deki hücrede de olmalı. A' da yer almayan bir ortak değer, B' deki hücrede de yer almamalı
b) Hem A hem de B' deki hücrede hiç bir ortak değer yer almamalı.
c) B' de yer alan ve içeriğinde hiç bir ortak değer bulundurmayan hücreler de A' da herhangi bir hücreyle kıyaslanmadan birleştirilmeden doğrudan listeye eklenir
Ör: A7 ile B34' e bakalım: Her ikisinde de oratka değerlerden 3 ve 4 var. Dolayısıyla bu iki hücreyi birleştiririz
Ör2: A7 ile B11 birleşemez. Çünkü A7' de ortak değerlerden sadece 3 ve 4 varken, B11' de ise 3 ve 4 ile birlikte diğer ortak değerler olan 5 ve 7' de var. Yani "a" maddesi gereği A' da olmayan bazı ortak değerler B' de yer almakta.
Ör3: A30' da ortak değerlerden hiç birisi yok. B41'de de yok o halde bu iki hücre aynı hücrede birleştirilebilir.
Ör4: B2' de sadece 1 var ve herhangi bir ortak değer de yok. A' dan herhangi bir hücreyle kıyaslanmadan, doğrudan listeye eklenir. (F' deki liste)
  • Eğer hiç bir şartı sağlayan hücre olmazsa, doğal olarak herhangi bir birleştirme işlemi de olmayacak
  • A ve B' deki hücre sayısı eşit değildir ve değişken sayıdadır
  • F sütununda gerekli kriterleri sağlayan hücrelerin birleştirilmiş halini görüyorsunuz. İşte böyle bir çıktı vermesi gerekiyor makronun.

Biraz aciliyeti ve önemi var benim için. Görüldüğü üzere oldukça basit bir makro lazım. Ben A ve B sütunlarındaki değerleri girerim. Ayrıca "ortak değerler"i gireceğim bir bölme de olur. Makroyu çalıştırınca F' deki gibi bir liste ortaya çıkar. Bir de mümkünse makronun biraz hızlı olması gerekiyor. Eğer yardımcı olabilirseniz çok sevinirim. Teşekkür ederim, herkese hayırlı ramazanlar diliyorum..
 

Ekli dosyalar

  • UYGULAMA.xlsx
    13.7 KB · Gösterim: 9
Ortak değerleri F2 hücresine yazın..
A ve B sütunlarına yazacağınız değişik değerlerle test edin Tekrarsız sıralama işini ekleyeceğim.
Çok sağolun, daha önceki yapılmış hesaplamaları girdim, aynısını verdi. Galiba bu sefer oldu. Sizden ricam, eğer mümkünse birleştirilen hücrelerin kuralın hangi maddesine göre yapıldığı da "sonuç" sütununun hemen yan tarafına listelenebilir mi acaba ?
 
Bu arada sonuç listesinde c maddesindeki kurala göre (yani B' de hiç bir ortak değer bulunmayan hücreler doğrudan eklenir) 1 ve 2 alınmış fakat 15 alınmamış. Makro neden bunu es geçmiş olabilir acaba ? Girdiğim verileri ve sonucu ekte paylaştım.
 

Ekli dosyalar

  • deneme.xlsm
    22.8 KB · Gösterim: 1
Bir de dikkatimi çeken ortak değerleri değiştirip F2' ye yazdığımda, yine bir önceki ortak değerlere göre hesaplama yapıyor makro. Galiba ilk başta girilen ortak değerleri sabit alıyor, sonraki değişiklikleri algılamıyor
 
Yine girdiğim bazı değerlerde yapılan birleştirmede, A' da yer almayan bir ortak değer B' de yer almış. Normalde A' daki hücrede hiç bir ortak değer yok fakat B' den alınıp birleştirilen hücrede ortak değer bulunmakta. Öncelikle B' de bulunmayan bir "ortak değer" A' da bulunmamalı, A' da yer alan "ortak değer"ler ise eksiksiz bir şekilde B' de de yer alıyorsa birleştirme yapılır. Bir de hem A hem de B' de hiç bir ortak değer mevcut değilse birleştirme işlemi yapılır.
 
#24 nolu mesajımda düzeltme yapmak istiyorum "Öncelikle B' de bulunan bir ortak değer A' da yoksa kesinlikle birleştirme işlemi yapılamaz. A' daki bulunan ortak değerlerin aynısı; ne eksiği ne de fazlası olmayacak şekilde B' de de yer almalı."
 
Örneği test edin.
Eğer A ve B sütunlarında 3 ve daha fazla haneli sayı kullanacaksanız, yanlış sonuç veriyor, F sütununda sayılar arasında ayraç olarak "_" kullanmanız sorun çıkar mı?
Örneğin A sütununda 100, B sütununda 30 varsa bunların birleşmesi F sütununda 30.100 (otuz bin yüz ) oluyor.
NOT:
Eğer eksik veya yanlış çıkan varsa ekteki dosyada eksik yanlışları renklendirerek dosyayı ekleyin.
 

Ekli dosyalar

  • deneme.xlsm
    23.1 KB · Gösterim: 1
Son düzenleme:
Örneği test edin.
Eğer A ve B sütunlarında 3 ve daha fazla haneli sayı kullanacaksanız, yanlış sonuç veriyor, F sütununda sayılar arasında ayraç olarak "_" kullanmanız sorun çıkar mı?
Örneğin A sütununda 100, B sütununda 30 varsa bunların birleşmesi F sütununda 30.100 (otuz bin yüz ) oluyor.
NOT:
Eğer eksik veya yanlış çıkan varsa ekteki dosyada eksik yanlışları renklendirerek dosyayı ekleyin.
Teşekkür ederim, test edeceğim hemen. A ve B' de 3 ve daha fazla haneli sayı kullanılmayacak. F de ise "_" ayracı kullanmak sorun yaratmaz, ben zaten çıktıyı aldıktan sonra onu tekrardan düzeltirim. "Deneme" dosyasında kontrolleri yaptıktan sonra sizi bilgilendireceğim, çok sağolun..
 
Makroda tek bir aksayan nokta var, paylaştığım dosyada da bunu görebilirsiniz. Bir ortak değer/değerler sadece B'de varsa, bu ortak değer/değerlerin bulunmadığı bir A hücresi ile birleşemez. Dosyada görüleceği üzere A4 ile B3 birleşimi F4' te yer alıyor. B' de ortak değer olan 7 var fakat bu ortak değer A4' ye yok. Tekrar edecek olursak kuralı, "A'daki hücrede bulunmayan bir ortak değer, asla ve asla B' deki hücrede de bulunmamalı". İşte makro bu kuralı çiğnemekte. Eğer burayı da düzeltebilirsek, sanırım başka da bir sorun kalmıyor.

Bir de şöyle tuhaf bir durum var: Evet, A4' de 7 olmadığı halde B3 ile birleştirme yapmış. Fakat A157' de "1,4,11" vardı. Orada neden "1,4,7,11" şeklinde bir birleştirme yapmamış, bu da ilginç bir durum. Yani aksayan durum her zaman aynı şartlarda aynı şekilde sonuç vermiyor nedense. Buradaki çelişkinin kökenini bulabilirsek herhalde sorun tamamen giderilmiş olacaktır. Acaba bazı rakamlar hücreler metin, bazıları genel, bazıları sayı formatında olduğu için farklı mı algılanıyor, bu da belki bir sebeptir hataya ilişkin.

Çünkü şimdi kontrol ettim, A4 "metin" iken, A157 "genel" olarak gözüküyor "Hücre biçimlendir" de.

A4' te "17" rakamı var. Galiba makro orayı "17" olarak algılamıyor, sırf hücre içeriğinde "7" olduğu için birleştirme yapmış. Hata buradan kaynaklanıyor. Yani "7 rakamı hücrede olsun da isterse 27' nin 7'si isterse 17' nin 7' si isterse de salt 7 rakamı olsun, fark etmiyor" şeklinde çalışıyor makro.
 

Ekli dosyalar

  • deneme.xlsm
    28.2 KB · Gösterim: 3
Moderatör tarafında düzenlendi:
Herhalde bu sefer Basit Bir Tarama Makrosu nu becerebildim.:)
 

Ekli dosyalar

  • deneme (2).xlsm
    29.6 KB · Gösterim: 6
Çözüm
Herhalde bu sefer Basit Bir Tarama Makrosu nu becerebildim.:)
Çok teşekkür ederim:) Aslında "basit"i kötü bir anlatımla zorlaştıran bendim, farkındayım:) Ben makroyu hemen incelemeye başlıyorum, sonrasında kontrolün neticesini sizinle paylaşacağım.
 
Bende test ediyorum hem A sütununda hem de B sütununda 10 gibi ortak değer olmayan bir değer olursa F sütununda iki kere 10 çıkıyor birisi b diğeri c şıkkına göre.
 
Bende test ediyorum hem A sütununda hem de B sütununda 10 gibi ortak değer olmayan bir değer olursa F sütununda iki kere 10 çıkıyor birisi b diğeri c şıkkına göre.
Evet tuhaf bir durum var ben de kontrol ediyorum. Mesela A ve B' ye önceden hesaplanmış veriler giriyorum, sizin hazırladığınız makronun aynısını veriyor. Başka veriler giriyorum burada da 7 tane eksik var. Bu fark neden kaynaklanıyor çözmeye çalışıyorum.
 
Tamam. Galiba aradaki farkın kaynağını buldum. c maddesinde "B' de ortak değerlerden hiç biri yoksa doğrudan listeye eklenir" demiştik. Meğerse aynı durum A için de geçerliymiş. Yani d maddesi olarak "A'da ortak değerlerden hiç biri yoksa doğrudan eklenir" gibi yeni kural eklersek, yani c maddesinin aynısını A sütunu için de işletirsek sorun tamamen çözülecek. Bu arada çok çok özür diliyorum, bu durum benim gözümden kaçmış. En başta da belirttiğim gibi malum oruç sebebiyle epey dikkatim dağılmış durumda, fakat bu kez daha da bir sorun çıkmayacak gibi gözüküyor.
 
#29 nolu mesajdaki dosyayı güncelledim.
Veriler zaten hazır halde beklemekteydim. Son hazırladığınız makroya aktardım ve milimetrik olarak doğru çıktı. O halde sorun kalmadı, makro nihayet tamamlandı diyebiliriz. Benim olayı pürüzlü bir şekilde ifade etmem, eksiklerin olması süreci biraz zorladı. Zahmet ettiniz, zaman ayırdınız; Gerçekten size ne kadar teşekkür etsem azdır. Çok çok sağolun, hayatta her şey gönlünüzce olur inşallah. Hayırlı ramazanlar diliyorum..
 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Konuyu okuyanlar

Geri
Üst