ich habe die folgende Funktion erstellt, die im Normalfall auch einwandfrei funktioniert. Die Funktion zerlegt den übergebenen String in seine Bestandteile und holt zu jedem Bestandteil eine Anzahl aus der gegebenen Matrix.
'Beispielaufruf
Sub Test()
MsgBox AnzahlTln("BK/KFB/VAK/SL/KIG", "205")
End Sub
Function AnzahlTln(Gruppe As String, Raum As String)
Dim Zeichen As Integer, TeilGrp As String, AnfGrp As String
Dim SummeTln As Integer
SummeTln = 0
AnfGrp = ""
For Zeichen = 1 To Len(Gruppe)
If Mid(Gruppe, Zeichen, 1) = "/" Then
TeilGrp = Mid(Gruppe, Len(AnfGrp) + 1, Zeichen - Len(AnfGrp) - 1)
'SVERWEIS auf Teilnehmer
SummeTln = SummeTln + Application.WorksheetFunction.VLookup(TeilGrp, ThisWorkbook. _
Worksheets("Grundlagen").Range("Teilnehmer"), 4, False)
AnfGrp = Left(Gruppe, Zeichen)
End If
Next Zeichen
'letzter Teilstring ermitteln
TeilGrp = Mid(Gruppe, Len(AnfGrp) + 1, Zeichen - 1)
'sverweis auf Teilnehmer
SummeTln = SummeTln + Application.WorksheetFunction.VLookup(TeilGrp, ThisWorkbook.Worksheets(" _
Grundlagen").Range("Teilnehmer"), 4, False)
AnzahlTln = SummeTln
End Function
Die Funktion hat nur den Nachteil, dass wenn ich Werte in der Matrix des aufrufenden SVERWEIS ändere, werden die Ergebnisse der Funktion nicht aktualisiert. Taste F9 hilft nicht. Nur wenn ich in der Zelle stehe mit F2 editiere und mit Enter abschließe, wird aktualisiert. Aber das kann ja nun nicht die Lösung sein.
Hat da jemand einen Tipp?
mfg RolfK