Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

SVERWEIS in Funktion

Betrifft: SVERWEIS in Funktion von: RolfK
Geschrieben am: 08.08.2008 18:38:09

Hallo Forum,

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

  

Betrifft: AW: SVERWEIS in Funktion von: Lars
Geschrieben am: 08.08.2008 18:45:44

Hi,

schon Application.Volatile als erste Zeile in der Function probiert?

mfg Lars


  

Betrifft: Danke... von: RolfK
Geschrieben am: 08.08.2008 19:03:50

Hallo Lars,

danke, das war genau der richtige Hinweis. Hatte ich bisher noch nicht genutzt.

mfg RolfK


 

Beiträge aus den Excel-Beispielen zum Thema "SVERWEIS in Funktion"