Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<

Microsoft Office 2003-2019 => Excel => Thema gestartet von: ManuelB am März 08, 2019, 11:36:23 Vormittag

Titel: Office 2013: VBA gibt ständig "Laufzeitfehler '91"
Beitrag von: ManuelB am März 08, 2019, 11:36:23 Vormittag
Hallo Zusammen,

ich habe eine Excelliste mit einem automatischen Filter über VBA erstellt, welchen ich im Internet gefunden habe.

Der Code funktioniert und aktualisiert meine Tabelle regelmäßig nach jeder Eingabe. Leider bekomme ich beim bearbeiten von Formeln oder bei Eingabe von Informationen in die Tabelle immer eine Fehlernachricht. (Bild der Fehlernachricht im Anhang)

Der Code lautet:

Private Sub Worksheet_Change(ByVal Target As Range)
   Sheets("Übersicht").AutoFilter.ApplyFilter
End Sub


Könnt Ihr mir helfen wie ich den Code abändern kann oder die Fehlernachricht deaktivieren kann?

Danke! :)

Gruß

Manuel
Titel: Antw: Office 2013: VBA gibt ständig "Laufzeitfehler '91"
Beitrag von: MasterOfHardness am März 11, 2019, 08:56:47 Vormittag
Man kann die Fehlermeldung vermeiden:

Entweder so:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume next
   Sheets("Übersicht").AutoFilter.ApplyFilter
End Sub

Dann wird bei jedem Fehler einfach mit der folgenden Zeile weiter gemacht. Besser ist dies:

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Goto Fehler

   Sheets("Übersicht").AutoFilter.ApplyFilter

weiter:
Exit Sub

Fehler:
With Err
  Select Case .Number
    Case 91

    Case Else
End With

End Sub
Titel: Antw: Office 2013: VBA gibt ständig "Laufzeitfehler '91"
Beitrag von: MasterOfHardness am März 11, 2019, 09:01:37 Vormittag
Vergiss den vorhergehenden Text, hab zu schnell auf Absenden geklickt.

Also, man kann die Fehlermeldung vermeiden:

Entweder so:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
   Sheets("Übersicht").AutoFilter.ApplyFilter
End Sub


Dann wird bei jedem Fehler einfach mit der folgenden Zeile weiter gemacht.

Besser ist dies:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Goto Fehler

   Sheets("Übersicht").AutoFilter.ApplyFilter

weiter:
Exit Sub

Fehler:
With Err
  Select Case .Number
    Case 91
      Resume Next
    Case Else
      MsgBox .Description, vbCritical, .Number
      Resume weiter
End With
End Sub
Titel: Antw: Office 2013: VBA gibt ständig "Laufzeitfehler '91"
Beitrag von: ManuelB am März 11, 2019, 10:34:57 Vormittag
Hey Hardness,

danke für die tolle Antwort.

Leider gab es bei dem immer eine Fehlernachricht, dass es ein Problem mit dem Kompilieren gab. "With ohne With"


Besser ist dies:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Goto Fehler

   Sheets("Übersicht").AutoFilter.ApplyFilter

weiter:
Exit Sub

Fehler:
With Err
  Select Case .Number
    Case 91
      Resume Next
    Case Else
      MsgBox .Description, vbCritical, .Number
      Resume weiter
End With
End Sub


Aber der erste Code hat dafür Problemlos funktioniert :)

Also, man kann die Fehlermeldung vermeiden:

Entweder so:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
   Sheets("Übersicht").AutoFilter.ApplyFilter
End Sub


Es taucht keine Fehlernachricht mehr auf.

Besten Dank :)

Wünsche eine schöne Woche.

Gruß

Manuel
Titel: Antw: Office 2013: VBA gibt ständig "Laufzeitfehler '91"
Beitrag von: MasterOfHardness am März 11, 2019, 12:52:48 Nachmittag
Tschuldigung, bin ein oller Schusselkopp. Habe da in der Tat noch was vergessen:

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Goto Fehler

   Sheets("Übersicht").AutoFilter.ApplyFilter

weiter:
Exit Sub

Fehler:
With Err
  Select Case .Number
    Case 91
      Resume Next
    Case Else
      MsgBox .Description, vbCritical, .Number
      Resume weiter
  End Select
End With
End Sub


So sollte das funktionieren.