DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Sub Makro1()
Dim i As Long, _
c As Range, _
adr As String
Application.ScreenUpdating = False
For i = 3 To Cells(Rows.Count, "D").End(3).Row
Application.StatusBar = i
With Range("C:C")
Set c = .Find(Cells(i, "D"), LookIn:=xlValues, LookAt:=xlPart)
If Not c Is Nothing Then
adr = c.Address
Do
Cells(i, "E") = Cells(i, "D") & " " & Cells(i, "D")
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> adr
End If
End With
Set c = Nothing
adr = ""
Next i
Application.ScreenUpdating = True
MsgBox "Arama Bitmiştir...."
End Sub
Sub Test()
Dim Bak As Integer
Dim AraAlan As Range
Dim Bul As Range
Set AraAlan = Range("C3:C" & Cells(Rows.Count, "C").End(xlUp).Row)
For Bak = 1 To Cells(Rows.Count, "D").End(xlUp).Row
Set Bul = AraAlan.Find(what:=Cells(Bak, "D"), lookat:=xlPart)
If Not Bul Is Nothing Then Cells(Bak, "E") = Bul
Next
MsgBox "Tamamlandı."
End Sub
küçük bir farkla istediğim gibi oldu.İlgilendiğiniz için çok teşekkür ederim.Merhaba.
Alternatif.
Kod:Sub Test() Dim Bak As Integer Dim AraAlan As Range Dim Bul As Range Set AraAlan = Range("C3:C" & Cells(Rows.Count, "C").End(xlUp).Row) For Bak = 1 To Cells(Rows.Count, "D").End(xlUp).Row Set Bul = AraAlan.Find(what:=Cells(Bak, "D"), lookat:=xlPart) If Not Bul Is Nothing Then Cells(Bak, "E") = Bul Next MsgBox "Tamamlandı." End Sub
Merhaba Necdet Bey ilgilendiğiniz için teşekkür ederim.sizin yazdığınızı modüle ekleyip denedim.arama işlemi 2 dakika kadar sürüyor.yani ekran donuyor.sonra sonuçlar çıkıyor.veri çokluğundan değil azaltınca da aynı.bu normalmi bilemedim.Merhaba
Aşağıdaki kodları bir modüle kopyalayıp deneyiniz.
Doğru mu anladım bilmiyorum.
D sütunundaki isimler tekrarlanabilir, bunun anlamı o kadar kayıt var demektir.
Kod:Sub Makro1() Dim i As Long, _ c As Range, _ adr As String Application.ScreenUpdating = False For i = 3 To Cells(Rows.Count, "D").End(3).Row Application.StatusBar = i With Range("C:C") Set c = .Find(Cells(i, "D"), LookIn:=xlValues, LookAt:=xlPart) If Not c Is Nothing Then adr = c.Address Do Cells(i, "E") = Cells(i, "D") & " " & Cells(i, "D") Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> adr End If End With Set c = Nothing adr = "" Next i Application.ScreenUpdating = True MsgBox "Arama Bitmiştir...." End Sub
Sub Test()
Dim Bak As Integer
Dim AraAlan As Range
Dim Bul As Range
Set AraAlan = Range("C3:C" & Cells(Rows.Count, "C").End(xlUp).Row)
For Bak = 1 To Cells(Rows.Count, "D").End(xlUp).Row
Set Bul = AraAlan.Find(what:=Cells(Bak, "D"), lookat:=xlPart)
If Not Bul Is Nothing Then
If Cells(Bul.Row, "E") = "" Then
Cells(Bul.Row, "E") = Cells(Bak, "D")
Else
Cells(Bul.Row, "E") = Cells(Bul.Row, "E") & ", " & Cells(Bak, "D")
End If
End If
Next
MsgBox "Tamamlandı."
End Sub
Çok teşekkür ederim Muzaffer Ali Bey.Tam istediğim gibi.Ben yine anlamadım herhalde ama bir deneyin bakalım.
Kod:Sub Test() Dim Bak As Integer Dim AraAlan As Range Dim Bul As Range Set AraAlan = Range("C3:C" & Cells(Rows.Count, "C").End(xlUp).Row) For Bak = 1 To Cells(Rows.Count, "D").End(xlUp).Row Set Bul = AraAlan.Find(what:=Cells(Bak, "D"), lookat:=xlPart) If Not Bul Is Nothing Then If Cells(Bul.Row, "E") = "" Then Cells(Bul.Row, "E") = Cells(Bak, "D") Else Cells(Bul.Row, "E") = Cells(Bul.Row, "E") & ", " & Cells(Bak, "D") End If End If Next MsgBox "Tamamlandı." End Sub
Merhaba Necdet Bey ilgilendiğiniz için teşekkür ederim.sizin yazdığınızı modüle ekleyip denedim.arama işlemi 2 dakika kadar sürüyor.yani ekran donuyor.sonra sonuçlar çıkıyor.veri çokluğundan değil azaltınca da aynı.bu normalmi bilemedim.
arama sonucu istediğim gibi sadece E sütüna yazılan yazı C sütündaki satırın sırasına gelse.şu anki haliyle d sütünündaki karşılığının sırasına denk geliyor.
Sub Makro1()
Dim i As Long, _
c As Range, _
adr As String
Application.ScreenUpdating = False
Range("E:E").ClearContents
For i = 1 To Cells(Rows.Count, "D").End(3).Row
With Range("C:C")
Set c = .Find(Cells(i, "D"), LookIn:=xlValues, LookAt:=xlPart)
If Not c Is Nothing Then
adr = c.Address
Do
Cells(c.Row, "E") = Cells(c.Row, "E") & " - " & Cells(i, "D")
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> adr
End If
End With
adr = ""
Set c = Nothing
Next i
Application.ScreenUpdating = True
End Sub
Teşekkür ederim istediğim gibi oldu.sağolun.Merhaba,
Örnek dosyanızda D sütunu boş gibi görünse de baya bir veri var, dosyanızda onları sildim. Kod hızlandı.
Ayrıca aynı kişiye ait kayıt olduğu için hepsini birden aratıyorum, E sütununda bunları da görebilirsiniz.
Aşağıdaki kodları tekrar deneyin, olmazsa Muzaffer bey'in kodlarını kullanırsınız.
Kod:Sub Makro1() Dim i As Long, _ c As Range, _ adr As String Application.ScreenUpdating = False Range("E:E").ClearContents For i = 1 To Cells(Rows.Count, "D").End(3).Row With Range("C:C") Set c = .Find(Cells(i, "D"), LookIn:=xlValues, LookAt:=xlPart) If Not c Is Nothing Then adr = c.Address Do Cells(c.Row, "E") = Cells(c.Row, "E") & " - " & Cells(i, "D") Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> adr End If End With adr = "" Set c = Nothing Next i Application.ScreenUpdating = True End Sub
Sub Test()
Dim Bak As Integer
Dim AraAlan As Range
Dim Bul As Range
Set AraAlan = Range("C3:C" & Cells(Rows.Count, "C").End(xlUp).Row)
For Bak = 1 To Cells(Rows.Count, "D").End(xlUp).Row
Set Bul = AraAlan.Find(what:=Cells(Bak, "D"), lookat:=xlPart)
If Not Bul Is Nothing Then
If Cells(Bul.Row, "E") = "" Then
Cells(Bul.Row, "E") = Cells(Bak, "D")
Else
Cells(Bul.Row, "E") = Cells(Bul.Row, "E") & ", " & Cells(Bak, "D")
End If
else
msgbox Cells(Bak, "D") & " bulunamadı. İşlem sonlandırılıyor."
exit sub
End If
Next
MsgBox "Tamamlandı."
End Sub
Sub Düğme164_Tıklat()
Dim Bak As Integer
Dim AraAlan As Range
Dim Bul As Range
Set AraAlan = Range("J2:J" & Cells(Rows.Count, "J").End(xlUp).Row)
For Bak = 2 To Cells(Rows.Count, "N").End(xlUp).Row
Set Bul = AraAlan.Find(what:=Cells(Bak, "N"), lookat:=xlPart)
If Not Bul Is Nothing Then
If Cells(Bul.Row, "l") = "" Then
Cells(Bul.Row, "l") = Cells(Bak, "N")
Else
Cells(Bul.Row, "l") = Cells(Bul.Row, "l") & ", " & Cells(Bak, "N")
End If
Else
MsgBox Cells(Bak, "n") & " bulunamadı. İşlem sonlandırılıyor."
Exit Sub
End If
Next
Range("L2").Copy Range("L1")
Range("H2:L2").Cut Range("a65535").End(xlUp).Offset(1, 0)
With Range("a65535").End(xlUp).Offset(1, 0).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("H3:L208").Cut Range("H2")
UserForm11.show
End Sub