Folgender Code befindet sich in 10 Arbeitsblättern (fiktive Namen) "Abt. Montag", "Abt. Dienstag" ,"Abt. Mittwoch", "Abt. Donnerstag", "Abt. Freitag", "Abt. Samstag", "Abt. Sonntag", "Abt. Januar", "Abt. März", "Abt. Juni".
Private Sub UpdateCells(ByVal row As Integer, ByVal col As Integer)
On Error Resume Next
Dim i As Integer
' Starte eine Schleife, die die nächsten fünf Spalten durchläuft
For i = col + 1 To col + 5
Dim result As Variant
' SVERWEIS-Funktion , um einen Wert in einem bestimmten Bereich des Arbeitsblatts "Stammdaten" zu suchen
result = Application.WorksheetFunction.VLookup(Me.Cells(row, col), Worksheets("Stammdaten").range("C:OG"), Me.Cells(2, i).Value + Me.Cells(row, 3).Value, False)
' Wenn ein Fehler auftritt...
If Err.Number <> 0 Then
' Setze den Wert der Zelle (row, i) auf einen leeren String
Me.Cells(row, i).Value = ""
Err.Clear
Else
' Wenn das Ergebnis größer als 0 ist...
If result > 0 Then
' Setze den Wert der Zelle (row, i) auf Ergebnis
Me.Cells(row, i).Value = result
' Wenn Ergebnis nicht größer als 0 ist...
Else
' Setze den Wert der Zelle (row, i) auf einen leeren String
Me.Cells(row, i).Value = ""
End If
End If
Next i
On Error GoTo 0
End Sub
Der Code reagiert auf Ereignisse in den Arbeitsblättern.
Aber der Code reagiert auf das Ereignis in "Stammdaten" nicht. Angenommen; Madonna arbeitet in der "Abt. Freitag" , und ist heute Krank = "K". Das Ereignis aus dem Arbeitsblatt "Stammdaten" wird in der "Abt. Freitag" erst danach angezeigt, wenn Madonna um eine Zelle verschoben wird.
Wie könnte ich das Problem lösen ?
Welche Informationen braucht ihr um mir helfen zu können?
Bedanke mich im Voraus für die Unterstützung.