karşılaştırma makrosu yapmak istiyorum

Katılım
13 Aralık 2006
Mesajlar
11
Excel Vers. ve Dili
EXCEL 2003 İNGİLİZCE
Merhaba arkadaşlar; siteye yeni üye oldum. Makro konusunda öğrenmem gereken çok şey var, dolayısıyla yardımlarınıza ihtiyacım var. Bir kitaptan temel anlamda birşeyler öğrendim, fakat bir proje geliştirme konusunda yetersiz kalıyor. Ekte size gönderdiğim dosyada yapmak istediğim bir çaçışmanın taslağı var. imkb sheet'inde tamamen sabit olarak kalacak datalar var, bu sayfaya hiç dokunmayacağım. (Ayda bir içinde düzenleme yapacağım). bugün sheetinde ise her gün değişecek datalar olacak. Format tamamen aynı kalacak ama içinde eksik olanlar olacak. Yani bu hazine bonoları vs. den bugün için olmayanları falan olacak, dolayısıyla bunların yeri, sırası değişebilecek. Benim yapmak istediğim kontrol ise şu. Ben her gün bugün sheet'ine bu formatta yeni datayı koyacağım. Sonra; main sayfasına atayacağım makro butonuna basacağım. Bu buton, imkb sayfasındaki dataları bugün sayfasında arayacak, eğer içlerinde aynısından bulamazsa, bulamadığını main sayfasında TRB 030107 T13, ... bugün işlem görmedi diye sıralayacak. Eğer imkb sheetiyle, bugün sheeti tamamen aynıysa işlem görmeyen yok, yazacak. Bu konuda nasıl bir yol izlemeliyim. Kafamdaki proje bu, fakat nasıl bir yol izleyeceğimi nereden öğreneceğimi bilmiyorum. Yardımlarınızı bekliyorum. Hepinize şimdiden teşekkür ederim :)
 
Katılım
7 Aralık 2006
Mesajlar
16
Excel Vers. ve Dili
excel 2003 Türkçe
bunu yazarsan dediğin gibi olur herhalde

Sub makro()
For i = 4 To 30
For k = 4 To 30
If Sheets("bugün").Cells(i, 1) = Sheets("imkb").Cells(k, 1) And Sheets("bugün").Cells(i, 2) = Sheets("imkb").Cells(k, 2) And Sheets("bugün").Cells(i, 3) = Sheets("imkb").Cells(k, 3) Then
Sheets("main").Cells(i, 1) = Sheets("imkb").Cells(i, 1)
Sheets("main").Cells(i, 2) = Sheets("imkb").Cells(i, 2)
Sheets("main").Cells(i, 3) = Sheets("imkb").Cells(i, 3)

End If

Next k
Next i
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Ekli dosyayı inceleyin. Dosyada aşağıdaki kod kullanılmıştır.

Kod:
Sub karsilastir()
Set s1 = Sheets("imkb")
Set s2 = Sheets("bugün")
Set s3 = Sheets("main")
son = s1.[a65536].End(3).Row
s3.[a:c].ClearContents
For a = 4 To s2.[a65536].End(3).Row
deg = Evaluate("=SUMPRODUCT((imkb!A4:A" & son & "=bugün!A" & a & ")*(imkb!B4:B" & son & "=bugün!B" & a & ")*(imkb!C4:C" & son & "=bugün!C" & a & "))")
If deg = 0 Then
c = c + 1
s3.Cells(c, "a") = s2.Cells(a, "a") & " " & Format(s2.Cells(a, "b"), "dd.mm.yyyy") & " " & s2.Cells(a, "c") & " bugün işlem görmedi."
End If
Next
If c = 0 Then s3.[a1] = "İşlem görmeyen mevcut değildir."
End Sub
 
Katılım
13 Aralık 2006
Mesajlar
11
Excel Vers. ve Dili
EXCEL 2003 İNGİLİZCE
arkadaşlar, ikinize de çok teşekkür ediyorum. Ben şimdi bunları bir inceleyim anlamaya çalışayım. Şu an bu benim işimi görecek zaten. Çok teşekkürler.
 
Üst