AW: @Andi: Summenbildung aus Textstring
08.03.2005 16:43:39
Andi
Hi Lorenz,
da hast Du aber Glück, dass Du mich hier noch antriffst, ab in ner Stunde werd ich nämlich für'n paar Tage nicht an den Rechner kommen...
So sollte es eigentlich funktionieren:
Function obst_zaehlen(Suchwort As String, ParamArray zellen() As Variant) As Double
Application.Volatile
Dim zaehler As Integer
Dim zahl As String
Dim zelle As Variant
Dim wort As String
For Each zelle In zellen()
For zaehler = 1 To Len(zelle.Value)
Select Case Mid(zelle.Value, zaehler, 1)
Case "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
wort = ""
zahl = zahl & Mid(zelle.Value, zaehler, 1)
Case Else
If Mid(zelle.Value, zaehler, 1) = "," Then
wort = ""
zahl = ""
ElseIf Mid(zelle.Value, zaehler, 1) = " " Then
wort = wort
Else
wort = wort & Mid(zelle.Value, zaehler, 1)
End If
If wort = Suchwort Then
obst_zaehlen = obst_zaehlen + Val(zahl)
zahl = ""
wort = ""
End If
End Select
Next zaehler
wort = ""
zahl = ""
Next zelle
End Function
Aufgerufen wird die Funktion zB so:
=obst_zaehlen("Birnen";A1;A2;D5)
mit beliebig vielen Zellen.
Da ich wie gesagt nicht viel Zeit hatte, hab ich die jetzt keine allzu universell einsetzbare Funktion hinbekommen, aber mit Deinen Beispielstrings kommt sie auf jeden Fall klar. Allerdings müssen die verschiedenen Obstsorten durch ein Komma, also weder durch ein Semikolon noch lediglich durch ein Leerzeichen oder so, getrennt sein.
Ich hoffe, das ist jetzt das, was Du gesucht hast.
Schönen Gruß,
Andi