964 Aufrufe
Gefragt in Tabellenkalkulation von ahorn38 Experte (3.3k Punkte)
Hallo,

ich habe ein Problem mit der findnext-Funktion.
in einer Tabelle mit den Spalten A und B

a Typ1
b Typ2
c Typ3
d Typ4
c Typ5
e Typ6
c Typ7
c Typ8
f Typ9
Ergebnis:
c Typ3 Typ5 Typ7 Typ8

möchte ich zeilenweise nach Duplikaten in Spalte "A" suchen und die jeweiligen Typen in einer string-Variablen wie oben "aufaddieren".
Wenn countif>1, dann mit findnext in einer Schleife solange bis das Ende erreicht ist text=Text & Cells(i,2)....

Danke für jeden Tipp.
Gruß

2 Antworten

0 Punkte
Beantwortet von ahorn38 Experte (3.3k Punkte)
Hallo,

habe selbst eine Möglichkeit gefunden. Wenn jemand noch Verbesserungsvorschläge hat...gern!:

Sub FindeNext()

With Range("a1:a9")
Set Rng = .Find("c", LookIn:=xlValues)
If Not Rng Is Nothing Then
firstRow = Rng.Row
iRow = Rng.Row
Do
Text = Text & Cells(iRow, 2)
Set Rng = .FindNext(Rng)
iRow = Rng.Row
Loop While Not Rng Is Nothing And iRow <> firstRow
End If
End With
MsgBox Text
End Sub

Gruß Andreas
0 Punkte
Beantwortet von
Hallo Andreas,

sowas macht man normalerweise in einer Funktion
Dazu ersetzt du in der ersten und letzten Zeile das Wort "Sub" durch "Function" und wählst innerhalb der Schleife als String-Variable den Namen der Funktion.
Anschließend kannst du dann darauf zugreifen mit z.B. a = FindNext()


Je nachdem wo du den String zurückgeben willst, kannst du das auch als Eigene Excel-Formel aufbauen. Hier ein Beispiel:

Public Function FindNext(Suchwert, Suchbereich As Range, Ergebnisbereich As Range, Optional Trennzeichen As String) As String

For Each i In Suchbereich.Cells
If i = Suchwert Then
FindNext = FindNext & Ergebnisbereich.Cells(i.Row, 1) & Trennzeichen
End If
Next i

FindNext = Left(FindNext, Len(FindNext) - Len(Trennzeichen))

End Function



Angenommen deine Daten stehen in A1:B9 dann schreibst du z.B. in A12 das gesuchte c und in B12 folgende Formel:

=FindNext(A12;A1:A9;B1:B9;", ")


der Letzte Parameter ist dabei Optional. D.h. du kannst das Trennzeichen auch weglassen. Dann werden die Typen direkt aneinander gereiht.

L.G. Mr. K.
...