Die Excel Wühlkiste

Autofilter setzen

Spalten aus- und einblenden
Aufrufen von Subroutinen mit "Call"

Das kommt oft vor: zu diversen Zwecken möchte man Spalten oder auch Zeilen automatisch aus- und wieder einblenden. Auch den Autofilter benötigt man manchmal nur zB. für einen Ausdruck - und sei es nur, um Papier zu sparen.
Warum auch immer, mit einem kleinen Makro lässt sich das vollkommen automatisieren.

In diesem Beispiel wird erst einmal geprüft, ob das aktive WorkSheet das erste Blatt der Mappe ist. Wenn nicht, kommt eine Meldung (MsgBox) und das Makro wird abgebrochen (Exit Sub).

In der Subroutine 1 "Filter_setzen()" muss vorab gecheckt werden, ob der Autofilter bereits gesetzt ist, sonst kann es zu unerwünschten Erscheinungen kommen.

 

 

Sub Zaelliste_drucken()

If ActiveSheet.Index <> 1 Then
MsgBox("Für diese Aktion bitte zuvor das erste " & Chr(13) _
& "Tabellenblatt aktivieren")
Exit Sub
End If

Application.ScreenUpdating = False
'Application.DisplayAlerts = False
Call Filter_setzen
Call Spalten_ausblenden
Sheets(1).PrintOut
Call Filter_aus
Call Spalten_einblenden
'Application.DisplayAlerts = True
Application.ScreenUpdating = True

End Sub

Sub Filter_setzen()
' Autofilter einschalten

If Not ActiveSheet.AutoFilterMode = True Then
Rows("4:4").AutoFilter
Rows("4:4").AutoFilter Field:=7, Criteria1:=">0", Operator:=xlAnd
End If

End Sub
Sub Filter_aus()
' Autofilter ausschalten (11.05.2005)

Sheets(1).AutoFilterMode = False
' oder alternativ nur die Kriterien zurück auf "ALLE" setzen:
' Sheets(1).ShowAllData

End Sub

Sub Spalten_ausblenden()

Sheets(1).Range("C:C,E:F").EntireColumn.Hidden = True
' oder für Zeilen:
' Sheets(1).Range("5:5,10:12").EntireRow.Hidden = True

End Sub

Sub Spalten_einblenden()

Sheets(1).Range("C:C,E:F").EntireColumn.Hidden = False
' oder für Zeilen:
' Sheets(1).Range("5:5,10:12").EntireRow.Hidden = False

End Sub
Die Excel Wühlkiste
Valid HTML 4.01 Strict
letzte Aktualisierung: 13.02.2009
Autor: Hubert Scheidgen / 04.02.2009
W3C CSS-Validierungsservice