DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
=EĞERHATA(İNDİS($B$1:$B$10
;KÜÇÜK(EĞER($A$1:$A$10=$E$1
;SATIR($A$1:$A$10)-SATIR($A$1)+1);SATIRSAY($G$1:G1)));"")
Sub Aranan_Bul()
Dim c As Range, Adr As String, ayr As String
ayr = "|" 'listelemede arada kullanılan ayraç
'boşluk için " " yeterli.
With Range("G1") 'verinin yazılacağı hücre
.ClearContents
Set c = [[COLOR="Red"]A:A[/COLOR]].Find([[COLOR="Teal"]E1[/COLOR]], , xlValues, xlWhole)
If Not c Is Nothing Then
Adr = c.Address
Do
.Value = .Value & ayr & Cells(c.Row, "[COLOR="blue"]B[/COLOR]")
Set c = [[COLOR="red"]A:A[/COLOR]].FindNext(c)
Loop While Not c Is Nothing And c.Address <> Adr
End If
.Value = WorksheetFunction.Substitute(.Value, ayr, "", 1)
End With
End Sub
İstek üzerine.
Aynı hücrede yazmak için.
E1 deki değeri A sütununda arar, B sütunundaki karşılığını G1 hücresine araya "|" ayracını koyarak yazar.
Kod:Sub Aranan_Bul() Dim c As Range, Adr As String, ayr As String ayr = "|" 'listelemede arada kullanılan ayraç 'boşluk için " " yeterli. With Range("G1") 'verinin yazılacağı hücre .ClearContents Set c = [[COLOR="Red"]A:A[/COLOR]].Find([[COLOR="Teal"]E1[/COLOR]], , xlValues, xlWhole) If Not c Is Nothing Then Adr = c.Address Do .Value = .Value & ayr & Cells(c.Row, "[COLOR="blue"]B[/COLOR]") Set c = [[COLOR="red"]A:A[/COLOR]].FindNext(c) Loop While Not c Is Nothing And c.Address <> Adr End If .Value = WorksheetFunction.Substitute(.Value, ayr, "", 1) End With End Sub
.
Merhaba,bu makro işe yaradı ancak döngüsel olarak yapmam gerekiyor. arama yapılan hücre bir tane olmayacak sırayla belki 100lerce satır olacak bunu nasıl yapabilirim.
merhaba,
söyledikleriniz doğrultusunda 40-50 satırlık örnek bir dosya eklerseniz, yardım alma şansınız daha yüksek olur.
Sub Rapor_Al()
Dim i As Long, c As Range, Adr As String, ayr As String
Application.ScreenUpdating = False
Range("E:G").ClearContents
Columns("A:A").Copy Range("E1")
ActiveSheet.Range("E1:E" & Cells(Rows.Count, "A").End(xlUp).Row) _
.RemoveDuplicates Columns:=1, Header:=xlNo
ayr = "-" 'listelemede arada kullanılan ayraç
'boşluk için " " yeterli.
For i = 1 To Cells(Rows.Count, "E").End(xlUp).Row
Set c = [A:A].Find(Cells(i, "E"), , xlValues, xlWhole)
If Not c Is Nothing Then
Adr = c.Address
Do
Cells(i, "F") = Cells(i, "F") & ayr & Cells(c.Row, "B")
Cells(i, "G") = Cells(i, "G") & ayr & Cells(c.Row, "C")
Set c = [A:A].FindNext(c)
Loop While Not c Is Nothing And c.Address <> Adr
End If
Cells(i, "F") = WorksheetFunction.Substitute(Cells(i, "F"), ayr, "", 1)
Cells(i, "G") = WorksheetFunction.Substitute(Cells(i, "G"), ayr, "", 1)
Next i
Application.ScreenUpdating = True
End Sub