Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
900to904
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
900to904
900to904
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Autofilter in Excel

Autofilter in Excel
28.08.2007 18:30:09
markus
Hallo,
ich hoffe ihr könnt mir helfen. Ich habe wirklich noch keine große Ahnung von Macros in Excel. Deshalb meine Fragen.
Ich möchte einen Auto Filter in ein Excel Macro in Reihe 4 Feld A bis K einsetzen. Wie muss ich da vorgehen? Das Macro enthält noch andere Funktionen die auch funktionieren, nur an dem Filter hängt es noch.
Meine zweite Frage lautet: Das Macro sieht so aus, dass eine Datei geöffnet wird, die Tabelle bearbeitet wird (funktioniert alles, bis auf denFilter) und in der Tabelle in Reihe 1 Feld G die aktuelle Kalenderwoche eingetragen werden soll und am Schluss die Datei mit dem Namen "Auszug KW (mit aktueller Kalenderwoche)" abgespeichert werden soll.
Hat irgend jemand einen Rat?
Es wäre für mich wirklich sehr wichtig.
Vielen vielen Dank im Vorraus.
Liebe Grüße
Markus

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Autofilter in Excel
28.08.2007 22:19:00
Klaus-Dieter
Hallo Markus,
warum stellst du deinen Quelltext hier nicht ein?
Viele Grüße Klaus-Dieter

Online-Excel

AW: Autofilter in Excel
29.08.2007 00:32:00
fcs
Hallo Markus,
hier mein Vorschlag für den Code für deine gewünschten Funktionalitäten.
Der Autofilter wird dabei "nur" eingerichtet, es wird jedoch keine Filterwert gesetzt.
Gruß
Franz

Sub aTest()
Dim wks As Worksheet, Bereich As Range
Dim Zeile1 As Long, Spalte1 As Integer, Spalte2 As Integer, strKW As String
'Autofilter in Tabelle einrichten
Set wks = ActiveSheet
Zeile1 = 4
Spalte1 = 1 'Spalte A
Spalte2 = 11 'Spalte K
With wks
'Prüfen ob Autofilter im Blatt aktiv
If .AutoFilterMode = True Then
Set Bereich = .AutoFilter.Range
'Prüfen, ob Daten ausgeblendet sind
If .Cells.Count  .Cells.SpecialCells(xlCellTypeVisible).Count Then
.ShowAllData
End If
Else
'Bereich mit Daten
Set Bereich = .Range(.Cells(Zeile1, Spalte1), _
.Cells(.Cells.SpecialCells(xlCellTypeLastCell).Row, Spalte2))
Bereich.AutoFilter
End If
End With
'Kalenderwoche eingeben und in Zelle G1 eintragen
strKW = InputBox("Bitte Kalenderwoche eingeben:", "KW für Datenauszug")
If strKW = "" Then Exit Sub 'Abbrechen wurde gewählt
Range("G1").Value = Val(strKW)
'Dateispeichern
ActiveWorkbook.SaveAs FileName:=ActiveWorkbook.Path & "\Auszug KW" & strKW
'Dateischließen
ActiveWorkbook.Close
End Sub


Anzeige
AW: Autofilter in Excel
29.08.2007 08:50:04
Markus
Ich habs leider nicht hinbekommen.
Hier habe ich mein bisheriges Macro. Der Autofilter müsste nach der Zeile
ActiveWindow.Close SaveChanges:=False eingefügt werden.
Das mit der KW Woche ganz am Schluss.

Sub Makro1()
' Makro1 Makro
' Makro am 29.08.2007 von herkloma aufgezeichnet
Workbooks.Open Filename:="C:\Eigene Dateien\STÜLIAUSZUG\A1_KW3407.xls"
Rows("1:1").Select
Selection.ClearContents
ChDir "J:\Projekte"
Workbooks.Open Filename:="J:\Projekte\AU_KW_00.xls"
Rows("18:20").Select
Selection.Cut
Windows("A1_KW3407.xls").Activate
Selection.Insert Shift:=xlDown
Windows("AU_KW_00.xls").Activate
ActiveWindow.Close SaveChanges:=False
Cells.Select
Selection.Columns.AutoFit
Range("M16").Select
ChDir "C:\Eigene Dateien\STÜLIAUSZUG"
ActiveWorkbook.SaveAs Filename:= _
"C:\Eigene Dateien\STÜLIAUSZUG\A1_KW34_Auszug.xls", FileFormat:=xlExcel2, _
Password:="", CreateBackup:=False
ActiveWindow.Close
Application.WindowState = xlMinimized
End Sub


Vielen Dank.

Anzeige
AW: Autofilter in Excel
30.08.2007 00:07:27
fcs
Hallo Markus,
ich habe dein Makro programmiertechnisch auf Vorderman gebracht und die weiteren Funktionen eingebaut. Der vom Recorder aufgezeichnete Code ist leider oft sehr unübersichtlich mit seinen Methoden "Select" und "Activate" und "Selection" für die gerade aktive Auswahl.
Besser ist es möglichst auf Select und Activate zu verzichten und Arbeitsmappen beim Öffnen entsprechenden Objektvariblen ( deklariert As Workbook) zuzuweisen. Entsprechendes gilt auch für Tabellenblätter.
Das Makro startet jetzt den Datei-Öffnen-Dialog zur Auswahl der Datei mit den Daten der KW. Soweit möglich hab ich den Code auch getestet. Es scheint Alles zu passen.
Gruß
Franz

Sub aTest()
'von fcs für Markus 2007-08-29
'Auszug von Dateien mit Daten für Kalenderwoche speichern.
Dim wb_KW As Workbook, wb_KW00 As Workbook
Dim wks_KW As Worksheet, Bereich As Range
Dim Zeile1 As Long, Spalte1 As Integer, Spalte2 As Integer
Dim varName, strKW As String
'Verzeichnis für KW-Dateien einstellen/wechseln
varName = "C:\Eigene Dateien\STÜLIAUSZUG"
'  varName = "C:\Test" 'fcs Testzeile
If Dir(varName & "\*.*")  "" Then
ChDir (varName)
End If
'Gewünschte KW-Datei im Dialogfenster wählen und öffnen
varName = Application.GetOpenFilename(Filefilter:="Exceldateien(*.xls), *.xls", _
Title:="Datei für Kalender-Woche öffnen", MultiSelect:=False)
If varName = False Then Exit Sub 'Abbrechen wurde gewählt
Set wb_KW = Workbooks.Open(FileName:=varName)
'  Set wb_KW = Workbooks.Open(FileName:="C:\Eigene Dateien\STÜLIAUSZUG\A1_KW3407.xls")
Set wks_KW = wb_KW.Worksheets(1) 'Hier ggf. Nr derTabelle anpassen
wks_KW.Rows("1:1").ClearContents
Set wb_KW00 = Workbooks.Open(FileName:="J:\Projekte\AU_KW_00.xls", ReadOnly:=True)
'  Set wb_KW00 = Workbooks.Open(FileName:="C:\Test\AU_KW00.xls", ReadOnly:=True) 'fcs Testzeile
wb_KW00.Worksheets(1).Rows("18:20").Cut 'Hier ggf. Nr derTabelle anpassen
wks_KW.Rows("1:1").Insert Shift:=xlDown
wb_KW00.Close SaveChanges:=False
wks_KW.Columns.AutoFit
'Autofilter in Tabelle einrichten
Zeile1 = 4
Spalte1 = 1 'Spalte A
Spalte2 = 11 'Spalte K
With wks_KW
'Prüfen ob Autofilter im Blatt aktiv und gf. Autofilter deaktivieren
If .AutoFilterMode = True Then
.AutoFilterMode = False
End If
'Bereich mit Daten
Set Bereich = .Range(.Cells(Zeile1, Spalte1), _
.Cells(.Cells.SpecialCells(xlCellTypeLastCell).Row, Spalte2))
'Autofilter für Bereich aktivieren
Bereich.AutoFilter
End With
'Kalenderwoche eingeben und in Zelle G1 eintragen
strKW = InputBox("Bitte Kalenderwoche eingeben:", "KW für Datenauszug")
If strKW = "" Then Exit Sub 'Abbrechen wurde gewählt
wks_KW.Range("G1").Value = Val(strKW)
'Neuen Dateinamen berechnen
varName = Left(wb_KW.FullName, Len(wb_KW.FullName) - 4) & "_Auszug" & ".xls"
'Datei speichern und schließen
'  wb_KW.SaveAs FileName:=varName, Password:="", CreateBackup:=False 'fcs Testzeile
wb_KW.SaveAs FileName:=varName, FileFormat:=xlExcel2, Password:="", _
CreateBackup:=False, AddToMru:=True
wb_KW.Close
Application.WindowState = xlMinimized
End Sub


Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige