• DİKKAT

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

Sutun Karşılaştırma

Katılım
14 Haziran 2006
Mesajlar
575
R sutununda olması gereken.A sutunu ile P sutununu karşılaştıraçak var olanların kesişme noktalarına karşılık gelen açıklamayı 3. satırdan alaçak.böyle bir koda ihtiyaçım var.Örnek 6105805 i düşeyara ile buldu buna karşılık gelen 3. satırdaki açıklamayı bulaçak.
 

Ekli dosyalar

Sub a()
say = Range("P65536").End(3).Row
For i = 4 To say
If Application.CountIf(Columns(1), Range("P" & i)) > 0 Then
Satır = Columns(1).Find(Range("P" & i)).Row
For e = 2 To 12
If Cells(Satır, e) <> "" Then
yazı = yazı & " " & Cells(Satır, e) & " Adet " & Cells(3, e)
Range("Q" & i).Value = yazı
End If
Next
yazı = ""
Else
Range("Q" & i).Value = " "
End If
Next
End Sub

Bu kodda biraz değişiklik yapabilirmiyiz.
A sutunu ile P sutununu 3. satır ile karşılaştırma sonuçunda sadece Eksik yazısı ile çakışanın karşısına Eksik yazısı yazsın.
Yapacağımız kodda hangi yazıyı 3.sutunda buldurmak istiyorsak kodda buldurmak istediğimiz o yazıyı değiştirdiğimizde istediğimize daha kısa sürede ulaşmış olacağız.
 
Sadece yazı çıkmasını istiyorsanız
Kod:
yazı = yazı & " " & Cells(Satır, e) & " Adet " & Cells(3, e)
kodu yerine aşağıdaki kodu yazın
Kod:
yazı = yazı & Cells(3, e) & " "
Eğer bir satırda B:L aralağında iki veya daha fazla sütunda rakam yazılı ise tüm bu sutunların 3. satırında yazan metinleri birleştirerek Q sütununa yazıyor. Siz 3. satırdaki hata çeşitlerinde bir değişiklik yaparsanız makro çalışınca Q sutunuda ona göre değişir.
 
Eğer bir satırda B:L aralağında iki veya daha fazla sütunda rakam yazılı ise tüm bu sutunların 3. satırında yazan metinleri birleştirerek Q sütununa yazıyor. Siz 3. satırdaki hata çeşitlerinde bir değişiklik yaparsanız makro çalışınca Q sutunuda ona göre değişir.
Buraya kadar güzel.Örnek Ben sadece 3.satırda Eksik yazısını buldurmak istiyorum.3.satırda birden fazla bulmasın.
Teşekkürler.
 
3. Satır derken; verilerin bulunduğu kısımda A sütununda yazan 6007039 satırımı kastediyorsunuz, Yoksa bulunmasını istediğiniz kodların olduğu P sütununda da 6007039 yazan satırımı kastediyorsunuz. Bu satırda da sayı değişince yine 3. satırda sadece Eksik olanı mı arayacak. Diğer satırlarda şimdiki işlem sürecek mi? A ve P sütunlarında 6007039 sayısının o satırda aynı olması bir rastlantı mı? İşin mantığını tam anlatırsanız, tekrar başa dönmeyiz.
 
Modülde şu olması gerekiyor A sutunu ile P sutununda benzer olanları karşılaştır B3:L3 aralığına git Eksik olanları bul .
 

Ekli dosyalar

Yani önce "Eksik" Yazan hücrenin sütununu bulsun sonra o sütundaki dolu hücrelerin durumuna göre P ve A sütunlarını test etsin istiyorsunuz.

Kod:
Sub a()
 EksikSütunu = Range("B3:L3").Find("Eksik").Column
say = Range("P65536").End(3).Row
 Range("Q4:Q" & say).ClearContents
For i = 4 To say
If Application.CountIf(Columns(1), Range("P" & i)) > 0 Then
Satır = Columns(1).Find(Range("P" & i)).Row
If Cells(Satır, EksikSütunu) <> "" Then
yazı = yazı & Cells(3, EksikSütunu)
Range("Q" & i).Value = yazı
yazı = ""
End If
End If
Next
End Sub
 
Son düzenleme:
Kodun önceki halini yazarmısınız değiştirdiniz öncekini kaydetmimiştim.önceki kod daha güzeldi.Onu eklermisiniz.
 
Sub a()
EksikSütunu = Range("B3:L3").Find("Eksik").Column
say = Range("P65536").End(3).Row
Range("Q4:Q" & say).ClearContents
For i = 4 To say
If Application.CountIf(Columns(1), Range("P" & i)) > 0 Then
Satır = Columns(1).Find(Range("P" & i)).Row
If Cells(Satır, EksikSütunu) <> "" Then
yazı = yazı & Cells(3, EksikSütunu)
Range("Q" & i).Value = yazı
yazı = ""
End If
End If
Next
End Sub

Bu kod değil biraz önceki yazdığınız mantıkla istediğimi buldurabiliyordum.Onu tekrar eklermisiniz
 
Hataya düşmesin diye aynı mantığı biraz geliştirdim bulamadığınız nedir. Aynı şekilde çalışıyor. Deneyerek atıyorum siteye.
 
İstediğmi bulabiliyor emek hiçbir zaman boşa gitmez.
 
Geri
Üst