VBA Laufzeitfehler
16.09.2021 13:24:32
Zulu
ich habe glaube ich gleich mehrere Fehler in meinen Code eingebaut und bin auf eure Hilfe angewiesen da ich keine Idee habe wie ich das Makro zum laufen bekomme.
Wenn ich den Code wie abgebildet anstoße kommt es zum Laufzeitfehler 13 'Typen unverträglich'.
Dieser Fehler lässt sich durch das Löschen des Or Verbinders vermeiden. Jedoch kommt es dann zum Laufzeitfehler '-2147417848 (80010108)' Die Methode Range für das Objekt Worksheet ist fehlgeschlagen.
Könnt ihr mir sagen wo sich hier der Fehlerteufel versteckt?
Private Sub Worksheet_Change(ByVal Target As Range)
Datum = Range("H5")
If Target.Address = "$I$2" And Target.Value = "Nachtschicht" And Cells(2, 3).Value = "Frühschicht" Or "Spätschicht" Then
With Worksheets("Personalplanung")
.Range("I4").Value = "So"
.Range("J4").Value = "Mo"
.Range("K4").Value = "Di"
.Range("L4").Value = "Mi"
.Range("M4").Value = "Do"
.Range("N4").Value = "Fr"
.Range("I5").Value = DateAdd("d", 1, Datum)
.Range("J5").Value = DateAdd("d", 2, Datum)
.Range("K5").Value = DateAdd("d", 3, Datum)
.Range("L5").Value = DateAdd("d", 4, Datum)
.Range("M5").Value = DateAdd("d", 5, Datum)
.Range("N5").Value = DateAdd("d", 6, Datum)
End With
ElseIf Target.Address = "$I$2" And Target.Value = "Frühschicht" Or "Spätschicht" And Cells(2, 3).Value = "Nachtschicht" Then
With Worksheets("Personalplanung")
.Range("I4").Value = "Mo"
.Range("J4").Value = "Di"
.Range("K4").Value = "Mi"
.Range("L4").Value = "Do"
.Range("M4").Value = "Fr"
.Range("N4").Value = "Sa"
.Range("I5").Value = DateAdd("d", 3, Datum)
.Range("J5").Value = DateAdd("d", 4, Datum)
.Range("K5").Value = DateAdd("d", 5, Datum)
.Range("L5").Value = DateAdd("d", 6, Datum)
.Range("M5").Value = DateAdd("d", 7, Datum)
.Range("N5").Value = DateAdd("d", 8, Datum)
End With
Else
With Worksheets("Personalplanung")
.Range("I4").Value = "So"
.Range("J4").Value = "Mo"
.Range("K4").Value = "Di"
.Range("L4").Value = "Mi"
.Range("M4").Value = "Do"
.Range("N4").Value = "Fr"
.Range("I5").Value = DateAdd("d", 2, Datum)
.Range("J5").Value = DateAdd("d", 3, Datum)
.Range("K5").Value = DateAdd("d", 4, Datum)
.Range("L5").Value = DateAdd("d", 5, Datum)
.Range("M5").Value = DateAdd("d", 6, Datum)
.Range("N5").Value = DateAdd("d", 7, Datum)
End With
End If
End Sub