Hallo Petra,
wenn du das mit Formeln machen willst, dann so:
=WENNFEHLER(SVERWEIS(D4;Dienste!$C$3:$G$32;5;FALSCH);0)+WENNFEHLER(SVERWEIS(E4;Dienste!$C$3:$G$32;5;FALSCH);0)+WENNFEHLER(SVERWEIS(F4;Dienste!$C$3:$G$32;5;FALSCH);0)+WENNFEHLER(SVERWEIS(G4;Dienste!$C$3:$G$32;5;FALSCH);0)
Ist jetzt nur für ein paar Zellen und wird bei 31 Tage lang und unübersichtlich.
Da du ja sowieso ein Makro in der Tabelle hast, kannst du das einfacher mit der folgenden Funktion machen.
Kopiere das Makro in dein allgemeines Modul:
Function Dienstzeit(ByVal rngBereich As Range) As Double
Dim rngZelle As Range
Dim rngSuche As Range
Dim rngSuchbereich As Range
'Suchbereich definieren
Set rngSuchbereich = Worksheets("Dienste").Range("C3:G25")
'Übergebenen Bereich durchlaufen
For Each rngZelle In rngBereich
'nur nichtleere Zellen ansprechen
If rngZelle <> "" Then
'prüfen, ob Kürzel im Suchbereich gefunden wird
Set rngSuche = rngSuchbereich.Columns(1).Find(what:=rngZelle.Value, Lookat:=xlWhole, LookIn:=xlValues)
If Not rngSuche Is Nothing Then
'falls ja, dann gefundene Arbeitszeit zur Dienstzeit addieren
Dienstzeit = Dienstzeit + Worksheets("Dienste").Cells(rngSuche.Row, rngSuche.Column + 4).Value
'Variable für Suche wieder zurücksetzen
Set rngSuche = Nothing
End If
End If
Next rngZelle
'Suchbereich Zurücksetzen
Set rngSuchbereich = Nothing
End Function
Dann schreibst du in Zelle AJ4 die folgende Formel: =Dienstzeit(D4:AH4)
Diese kannst du soweit bei benötigt nach unten ziehen.
Gruß
M.O.