Fehler 13 bei Ausführen von Worksheet_Change
22.08.2025 17:43:28
Andreas
Als blutiger Anfänger in VBA habe ich mich mit einigen Web Tipps daran getraut, in VBA vordefinierte Filter für eine recht umfangreiche Liste zu erstellen. Um zwischen den diversen Filtereinstellungen auszuwählen, arbeite ich mit der Funktion "Datenüberprüfung", die ihre gültigen Werte aus einer kleinen Liste bezieht. Die Zelle der Datenüberprüfung habe ich als Zielwert in der Funktion Worksheet_Change(ByVal Target As Range) hinterlegt. Wenn der Benutzer im Dropdown der Datenüberprüfung den Wert für den Filter ändert, dann werden über das jeweils hinterlegte Modul die entsprechenden Filter angewandt.
Das funktioniert im Arbeitsblatt soweit auch gut und ohne Fehler, allerdings bekomme ich beim Öffnen des Arbeitsblatts den Fehler 13 (Typen unverträglich). Klicke ich die Fehlermeldung weg, dann funktioniert die Filter dennoch wie gewünscht.
Als absoluter Laie von VBA stehe ich auf dem Schlauch, warum die Fehlermeldung beim Öffnen des Arbeitsblatts kommt, die Makros / Filter aber problemlos ausgeführt werden. Vielleicht wichtig; das Arbeitsblatt wird beim Starten über einen Query Aufruf immer mit Daten aus einer SharePoint Liste befüllt.
Hat jemand eine Idee, wo der Fehler liegen kann? Der Code an sich funktioniert ja für die gestellte Aufgabe.
Vielen Dank!
Grüße
Andreas
Hier ist der Code aus meinem Arbeitsblatt. Target.Value bezieht sich immer auf den String aus dem Dropdown der Datenüberprüfung, und über Call rufe ich das jeweilige Makro mit den entsprechenden Filtereinstellungen auf.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$1" Then
If Target.Value = "Delays DGS" Then
Call Delays_DGS
ElseIf Target.Value = "Delays AMK" Then
Call Delays_AMK
ElseIf Target.Value = "Delays DS" Then
Call Delays_DS
ElseIf Target.Value = "Delays JH" Then
Call Delays_JH
ElseIf Target.Value = "Delays KD" Then
Call Delays_KD
ElseIf Target.Value = "Reset" Then
Call See_All
End If
End If
End Sub
Die Makros schauen beispielhaft wie folgt aus:
Sub Delays_DGS()
'
' Delays_AMK Makro
ActiveSheet.ListObjects("Tabelle_query").Range.AutoFilter Field:=3, _
Criteria1:="Hub EU DGS"
ActiveSheet.ListObjects("Tabelle_query").Range.AutoFilter Field:=36, _
Criteria1:="=2", Operator:=xlOr, Criteria2:="=3"
ActiveSheet.ListObjects("Tabelle_query").Range.AutoFilter Field:=45, _
Criteria1:="=N/A", Operator:=xlOr, Criteria2:="=No"
Columns("A:A").Select
Selection.EntireColumn.Hidden = True
Columns("K:M").Select
Selection.EntireColumn.Hidden = True
Columns("O:U").Select
Selection.EntireColumn.Hidden = True
Columns("W:AC").Select
Selection.EntireColumn.Hidden = True
Columns("AG:AG").Select
Selection.EntireColumn.Hidden = True
Columns("AK:AR").Select
Selection.EntireColumn.Hidden = True
Columns("AT:AW").Select
Selection.EntireColumn.Hidden = True
ActiveWindow.ScrollColumn = 2
End Sub
Anzeige