Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Fehler bei ActiveSheet.ShowAllData

Fehler bei ActiveSheet.ShowAllData
10.01.2017 13:45:54
Ralf
Hallo Forum,
ich habe folgendes Makro vorliegen:
Sub Test()
'Konfiguration
'Bildschirmaktualisierung aus
Application.ScreenUpdating = False
ActiveSheet.ShowAllData
ActiveSheet.Range("$B$3:$M$30").AutoFilter Field:=2, Criteria1:="=4", _
Operator:=xlOr, Criteria2:="="
ActiveSheet.Range("$B$3:$M$30").AutoFilter Field:=6, Criteria1:="=M", _
Operator:=xlOr, Criteria2:="="
'Bildschirmaktualisierung ein
Application.ScreenUpdating = True
End Sub

Es erscheint nach Aufruf folgende Fehlermeldung:
Userbild
Kann mir bitte jemand sagen, was an dem ShowAllData Befehl falsch ist?
Vielen Dank im Voraus für eine Rückmeldung.
Viele Grüße
Ralf
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Prüfe einfach vorher...
10.01.2017 13:58:54
Case
Hallo Ralf, :-)
... so: ;-)
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
Servus
Case

AW: Prüfe einfach vorher...
10.01.2017 14:12:56
Ralf
Hallo Case,
das zeichnet der Makrorekorder so natürlich nicht auf.
Passt, so funktioniert es wie gewünscht.
Viele Grüße
Ralf
Anzeige
Gerne! Danke für die Rückmeldung, owT
11.01.2017 08:24:46
Case
:-)
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Fehler bei ActiveSheet.ShowAllData in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf "VBAProject (deinDateiname)", wähle "Einfügen" und dann "Modul".

  3. Füge folgenden Code ein:

    Sub Test()
        ' Bildschirmaktualisierung aus
        Application.ScreenUpdating = False
    
        ' Überprüfe, ob Filter aktiv ist
        If ActiveSheet.FilterMode Then 
            ActiveSheet.ShowAllData
        End If
    
        ' Setze Autofilter
        ActiveSheet.Range("$B$3:$M$30").AutoFilter Field:=2, Criteria1:="=4", _
        Operator:=xlOr, Criteria2:="="
        ActiveSheet.Range("$B$3:$M$30").AutoFilter Field:=6, Criteria1:="=M", _
        Operator:=xlOr, Criteria2:="="
    
        ' Bildschirmaktualisierung ein
        Application.ScreenUpdating = True
    End Sub
  4. Starte die Subroutine: Klicke auf F5, um den Code auszuführen.


Häufige Fehler und Lösungen

  • Fehler 1004: ActiveSheet.ShowAllData schlägt fehl, wenn kein Filter aktiv ist. Achte darauf, dass du den Filterstatus überprüfst, wie im obigen Code gezeigt.
  • Methodenfehler: Wenn du den Fehler "Excel ShowAllData method failed" erhältst, stelle sicher, dass du If ActiveSheet.FilterMode Then verwendest, bevor du ShowAllData aufrufst.

Alternative Methoden

Falls du ShowAllData nicht verwenden möchtest, kannst du den Autofilter manuell zurücksetzen:

ActiveSheet.Range("$B$3:$M$30").AutoFilter

Diese Zeile entfernt alle Filter, zeigt jedoch nicht alle Daten an. Wenn du nur die Filter zurücksetzen möchtest, benutze:

ActiveSheet.AutoFilterMode = False

Praktische Beispiele

Hier ist ein Beispiel, wie du das Filtern und Zurücksetzen in einer einzigen Subroutine kombinieren kannst:

Sub FilterBeispiel()
    ' Bildschirmaktualisierung aus
    Application.ScreenUpdating = False

    ' Filter zurücksetzen, falls aktiv
    If ActiveSheet.FilterMode Then
        ActiveSheet.ShowAllData
    End If

    ' Filter anwenden
    ActiveSheet.Range("$A$1:$D$100").AutoFilter Field:=1, Criteria1:=">=100"

    ' Bildschirmaktualisierung ein
    Application.ScreenUpdating = True
End Sub

Tipps für Profis

  • Nutze Fehlerbehandlung: Ergänze deinen Code mit On Error Resume Next und On Error GoTo 0, um Fehler zu ignorieren oder spezifisch zu behandeln.
  • Verwende Kommentare: Halte deinen Code klar und verständlich, indem du Kommentare hinzufügst. So weißt du immer, was jeder Abschnitt bewirken soll.
  • Teste deine Makros in einer Kopie deiner Datei, um Datenverluste zu vermeiden.

FAQ: Häufige Fragen

1. Warum erhalte ich den Fehler "ShowAllData failed"?
Dieser Fehler tritt auf, wenn kein aktiver Filter vorhanden ist. Achte darauf, vor dem Aufruf von ShowAllData den Filterstatus zu überprüfen.

2. Wie kann ich alle Filter zurücksetzen, ohne ShowAllData zu verwenden?
Du kannst ActiveSheet.AutoFilterMode = False verwenden, um alle Filter zu entfernen, ohne die Daten wieder einzublenden.

3. Was ist der Unterschied zwischen ActiveSheet.ShowAllData und ActiveSheet.AutoFilter?
ShowAllData zeigt alle gefilterten Daten an, während AutoFilter Filter auf die Daten anwendet oder entfernt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige