Discussion:
Autofilter per Makro entfernen
(zu alt für eine Antwort)
Roman Wilhelm
2007-03-12 12:16:45 UTC
Permalink
Hallo zusammen,

mit einem Makro möchte ich verschiedene Zeilen in einem Tabellenblatt
überprüfen und berechnen. Wenn der User vorher aber einen Autofilter
eingestellt hat erkennt Excel nicht mehr alle Zeilen.


Befehl:
ActiveSheet.ShowAllData

Ich möchte dann Filter zurücksetzen. Das funktioniert auch wenn ein
Filter gesetzt wurde. Wenn aber kein Filter eingestellt ist, kommt
eine Fehlermeldung und das Programm wird abgebrochen.

Kann man diese Meldung übergehen oder den Filter auf eine andere Art
und Weise zurücksetzen?

Gruß,
Roman
Michael Mueller
2007-03-12 12:21:07 UTC
Permalink
Hi Roman.
Post by Roman Wilhelm
ActiveSheet.ShowAllData
Ich möchte dann Filter zurücksetzen. Das funktioniert auch wenn
ein Filter gesetzt wurde. Wenn aber kein Filter eingestellt
ist, kommt eine Fehlermeldung und das Programm wird abgebrochen.
Einfach die Fehlerbehandlung für diese eine Zeile ausschalten:

On Error Resume Next
ActiveSheet.ShowAllData
On Error GoTo 0


HTH
Michi
Roman Wilhelm
2007-03-12 13:07:48 UTC
Permalink
Post by Michael Mueller
Hi Roman.
Post by Roman Wilhelm
ActiveSheet.ShowAllData
Ich möchte dann Filter zurücksetzen. Das funktioniert auch wenn
ein Filter gesetzt wurde. Wenn aber kein Filter eingestellt
ist, kommt eine Fehlermeldung und das Programm wird abgebrochen.
On Error Resume Next
ActiveSheet.ShowAllData
On Error GoTo 0
HTH
Michi
danke

aber für mich noch zum Verständnis: Wieso goto 0
Es findet doch kein Sprung statt oder?
Michael Mueller
2007-03-12 13:15:12 UTC
Permalink
Post by Roman Wilhelm
Post by Michael Mueller
On Error Resume Next
ActiveSheet.ShowAllData
On Error GoTo 0
danke
aber für mich noch zum Verständnis: Wieso goto 0
Es findet doch kein Sprung statt oder?
Ja schon, beim Code-Ende wird auch dieses Errorhandling automatisch wieder
zurückgesetzt. Manchmal kann es aber nötig sein dieses schon vorher durch
"Goto 0" manuell zu machen. Habs mir halt so angewöhnt.

Michi


Dazu ein Auszug aus dem MSDN:

Turning Off Error Handling

Error traps that are enabled in a procedure are automatically disabled once
the procedure is exited. However, you may want to turn off an error trap in
a procedure while the code in that procedure is still running. To turn off
an enabled error trap, use the On Error GoTo 0 statement. After Visual Basic
runs this statement, errors are detected but not trapped within the
procedure. You can use the On Error GoTo 0 statement to turn off error
handling anywhere in a procedure , even within error-handling code.
Roman Wilhelm
2007-03-12 13:25:26 UTC
Permalink
Post by Michael Mueller
Hi Roman.
Post by Roman Wilhelm
ActiveSheet.ShowAllData
Ich möchte dann Filter zurücksetzen. Das funktioniert auch wenn
ein Filter gesetzt wurde. Wenn aber kein Filter eingestellt
ist, kommt eine Fehlermeldung und das Programm wird abgebrochen.
On Error Resume Next
ActiveSheet.ShowAllData
On Error GoTo 0
HTH
Michi
danke
Roman Wilhelm
2007-03-12 13:48:10 UTC
Permalink
Post by Michael Mueller
Hi Roman.
Post by Roman Wilhelm
ActiveSheet.ShowAllData
Ich möchte dann Filter zurücksetzen. Das funktioniert auch wenn
ein Filter gesetzt wurde. Wenn aber kein Filter eingestellt
ist, kommt eine Fehlermeldung und das Programm wird abgebrochen.
On Error Resume Next
ActiveSheet.ShowAllData
On Error GoTo 0
HTH
Michi
danke- Zitierten Text ausblenden -
- Zitierten Text anzeigen
Das funktioniert einwandfrei.

Claus Busch
2007-03-12 13:41:33 UTC
Permalink
Hallo Roman,
Post by Roman Wilhelm
mit einem Makro möchte ich verschiedene Zeilen in einem Tabellenblatt
überprüfen und berechnen. Wenn der User vorher aber einen Autofilter
eingestellt hat erkennt Excel nicht mehr alle Zeilen.
ActiveSheet.ShowAllData
Ich möchte dann Filter zurücksetzen. Das funktioniert auch wenn ein
Filter gesetzt wurde. Wenn aber kein Filter eingestellt ist, kommt
eine Fehlermeldung und das Programm wird abgebrochen.
dann frag doch ab, ob der Filter gesetzt ist und zeige nur dann alle Daten:
With ActiveSheet
If .FilterMode = True Then
.ShowAllData
End If
End With
--
Mit freundlichen Grüssen
Claus Busch

Win XP Prof SP2; Office 2000 SP3
claus_busch(at)t-online.de
Loading...