Collapse column

Autor Thema: Office 2013: VBA gibt ständig "Laufzeitfehler '91"  (Gelesen 646 mal)

Offline ManuelB

  • Newbie
  • *
  • Beiträge: 15
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Ohne
  • Version [Office] : Office 2013
Office 2013: VBA gibt ständig "Laufzeitfehler '91"
« 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
« Letzte Änderung: März 08, 2019, 11:39:07 Vormittag von ManuelB »

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline MasterOfHardness

  • Newbie
  • *
  • Beiträge: 48
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2016
Antw: Office 2013: VBA gibt ständig "Laufzeitfehler '91"
« Antwort #1 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

Offline MasterOfHardness

  • Newbie
  • *
  • Beiträge: 48
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2016
Antw: Office 2013: VBA gibt ständig "Laufzeitfehler '91"
« Antwort #2 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

Offline ManuelB

  • Newbie
  • *
  • Beiträge: 15
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Ohne
  • Version [Office] : Office 2013
Antw: Office 2013: VBA gibt ständig "Laufzeitfehler '91"
« Antwort #3 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
« Letzte Änderung: März 11, 2019, 10:36:41 Vormittag von ManuelB »

Offline MasterOfHardness

  • Newbie
  • *
  • Beiträge: 48
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2016
Antw: Office 2013: VBA gibt ständig "Laufzeitfehler '91"
« Antwort #4 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.

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.