- Katılım
- 26 Ocak 2006
- Mesajlar
- 756
- Excel Vers. ve Dili
- Office 365 İngilizce 64 Bit
- Altın Üyelik Bitiş Tarihi
- 31-01-2025
Arkadaşlar selam,
Bir sayfada 2 kolonda (Tarih & Rakam)larım var. Aynı tarih ve aynı rakamdan oluşan birden fazla satır da olabiliyor. Burada bulunan her bir satırı Data sayfasında ilgili 2 kolonda aratarak işaretletmek istiyorum. Data sayfasında da benzer birden fazla satır oluyor. Aranan kısmında kaç adet var ise ben o kadar adet işaretletmek istiyorum aslında. Benim daha önce yardım aldığım ve uyarladığım aşağıdaki kodlar aranan kısmında 1 tane olan Datada 10 tane varsa 10 tanesini de işaretliyor. kodlara bu kontrolü koyamadım. Data normalde binlerce satırdan oluştuğu için döngülerle yapmak çok zaman alıyor. Basit bir örnekle daha rahat anlaşılabilir sanırım.
Yardımcı olabilirseniz çok sevinirim.
Bir sayfada 2 kolonda (Tarih & Rakam)larım var. Aynı tarih ve aynı rakamdan oluşan birden fazla satır da olabiliyor. Burada bulunan her bir satırı Data sayfasında ilgili 2 kolonda aratarak işaretletmek istiyorum. Data sayfasında da benzer birden fazla satır oluyor. Aranan kısmında kaç adet var ise ben o kadar adet işaretletmek istiyorum aslında. Benim daha önce yardım aldığım ve uyarladığım aşağıdaki kodlar aranan kısmında 1 tane olan Datada 10 tane varsa 10 tanesini de işaretliyor. kodlara bu kontrolü koyamadım. Data normalde binlerce satırdan oluştuğu için döngülerle yapmak çok zaman alıyor. Basit bir örnekle daha rahat anlaşılabilir sanırım.
Yardımcı olabilirseniz çok sevinirim.
Kod:
Sub kontrol_et()
'Application.ScreenUpdating = False
Dim s1 As Worksheet, s2 As Worksheet, a(), w(), dc As Object
Dim i As Long, krt As String, say As Long, j As Byte
Set s1 = Sheets("Giris")
Set s2 = Sheets("Data")
Set dc = CreateObject("scripting.dictionary")
s2.Select
a = s1.Range("B3:C" & s1.[B65000].End(xlUp).Row).Value
For i = 1 To UBound(a)
krt = CStr(a(i, 1)) & "|" & a(i, 2)
dc(krt) = ""
Next i
Erase a
a = s2.Range("A3:F" & s2.[F65000].End(xlUp).Row).Value
ReDim w(1 To UBound(a), 1 To 1)
For i = 1 To UBound(a)
krt = CStr(a(i, 6)) & "|" & a(i, 4)
If dc.exists(krt) Then
w(i, 1) = "X"
Else
w(i, 1) = ""
End If
Next i
' Application.ScreenUpdating = 0
s2.[K3].Resize(UBound(a)) = w
' Application.ScreenUpdating = 1
'Application.ScreenUpdating = True
End Sub
Ekli dosyalar
-
123.3 KB Görüntüleme: 7