AW: Wert finden und Verketten
05.03.2010 15:26:18
fcs
Hallo Michael,
kleines Mißverständnis.
Auch diese Abtrennung kann man natürlich umsetzen.
Gruß
Franz
Function fncTexteVerketten(Suchwert, Bereich As Range, Suchspalte As Long, _
Textspalte As Long, _
Optional MaxAnzahl As Long, Optional MaxTrenn As String = "_", _
Optional Trenntext As String = "; ") As String
'Suchwert= zu suchender Wert
'Bereich mit zu suchenden und auszugebenden Werten
'Suchspalte = Nr. der Spalte innerhalb von Bereich in der der Suchwert gesucht _
werden soll
'Textspalte = Nr. der Spalte innerhalb von Bereich in der im Ergebnis zurückzugebenden _
Werte stehen
'MaxAnzahl = optionaler Wert für die Anzahl der zurückzugebenden Werte
'MaxTrenn = optionaler Wert für Zeichen zwischen den Wörtern des gefundenen Textes _
Vorgabe = "_"
'Trenntext = optionaler Wert für den zwischen den gefundenen Werten einzufügenden Trenntext _
Vorgabe = "; "
'Formelbeispiel: =fncTexteverketten(F10;$A$1:$B$7;2;1;2;"_";"; ")
' =fncTexteverketten(F10;$A$1:$B$7;2;1;2)
Dim zeile As Long, iZaehler As Long, sText As String
For zeile = 1 To Bereich.Rows.Count
If Bereich(zeile, Suchspalte) = Suchwert Then
sText = Bereich(zeile, Textspalte).Text
If MaxAnzahl > 0 Then
'Anzahl der Trennzeichen im gefundenen Text
iZaehler = Len(sText) - Len(Replace(sText, MaxTrenn, ""))
If iZaehler >= MaxAnzahl Then
'Text ab dem MaxAnzahl-ten Trennzeichen abtrennen - Substitute = WECHSELN
sText = Left(sText, InStr(1, Application.WorksheetFunction.Substitute(sText, _
MaxTrenn, "$_$", MaxAnzahl), "$_$") - 1)
End If
End If
If fncTexteVerketten = "" Then
fncTexteVerketten = sText
Else
fncTexteVerketten = fncTexteVerketten & Trenntext & sText
End If
End If
Next
End Function