Autofilter in Excel

Hallo,

ich möchte mit einem Makro in einer Liste mit einem Autofilter bestimmte Zeilen ausgeben, die ich dann in eine andere Arbeitsmappe kopiere.

Außer den herausgefilterte Zeilen werden mir leider auch alle leeren Zeilen der Arbeitsmappe angezeigt. Dadurch, dass ich mit Cells.Select alle Zeilen auswähle und diese dann weiterkopiere, habe ich in der neuen Arbeitsmappe nun über 65000 Zeilen. Dies ist dann problematisch, weil ich die Datei als *.csv speichere und diese auf einer Internetseite auslese.

Das Kuriose daran ist, dass ich die Auswahl per Autofilter (mit anderen Begriffen)im Makro in der Ursprungsdatei einige Male mache und ich das Problem da nicht habe. Hier werden mir nur die gefilterten Zeilen angezeigt; der Rest ist grau --> die leeren Zeilen werden nicht angezeigt. (Ich hoffe die Ausführungen waren halbwegs verständlich :wink:

Wie kann ich erreichen, dass mir nur die gefilterten Zeilen angezeigt werden (Ich habe Excel 2000)?

Vielen Dank im Voraus

Franziska

ich möchte mit einem Makro in einer Liste mit einem Autofilter
bestimmte Zeilen ausgeben, die ich dann in eine andere
Arbeitsmappe kopiere.

Außer den herausgefilterte Zeilen werden mir leider auch alle
leeren Zeilen der Arbeitsmappe angezeigt. Dadurch, dass ich
mit Cells.Select alle Zeilen auswähle und diese dann
weiterkopiere, habe ich in der neuen Arbeitsmappe nun über
65000 Zeilen. Dies ist dann problematisch, weil ich die Datei
als *.csv speichere und diese auf einer Internetseite auslese.

Hi Franziska,

ist ein bekannter Fehler in Excel-Vba, du hast in Codezeile 3 einen Syntaxfehler drin.

Gruß
Reinhard

Hallo Reinhard,

Hi Franziska,

ist ein bekannter Fehler in Excel-Vba, du hast in Codezeile 3
einen Syntaxfehler drin.

danke für deine schnelle Antwort. Leider weiß ich als VBA-Laie nicht so genau wo der Syntaxfehler ist. Könntest du mir vielleicht sagen, wo in meinem Makro der Fehler ist?

Columns(„M:M“).Select
Selection.AutoFilter Field:=1, Criteria1:=„3353600“
Cells.Select
Range(„M1“).Activate
Selection.Copy
Workbooks.Add
ActiveSheet.Paste

Hier habe ich nämlich das Problem, dass alle Daten, die 3353600 enthalten und alle leeren Zeilen kopiert werden…

Viele Grüße

Franziska

ist ein bekannter Fehler in Excel-Vba, du hast in Codezeile 3
einen Syntaxfehler drin.

danke für deine schnelle Antwort. Leider weiß ich als VBA-Laie
nicht so genau wo der Syntaxfehler ist. Könntest du mir
vielleicht sagen, wo in meinem Makro der Fehler ist?

*schwer grins* , nein nicht daß du da Laie bist, was anderes erheitert mich sehr, aber nix Schlimmes :smile:

Was anderes, der Autofiter blendet ja nur Zeilen aus die innerhalb einer Liste (so wie Excel sie erkennt) liegt, nachfolgende „leere“ Zeilen werden auch angezeigt.

Um die grundsätzlich nicht anzeigen zu lassen muß man anders vorgehen.

Wenn bei dir nur durch Autofilter „unten“ ein grauer Bereich erscheint, so liegt daß nur dran daß du in den Zeilen 1:65536 die Zeilen 2:65535 ausgeblendet/ausgfiltert hast, was alos soll Excel da noch anzeigen außer „grau“.
Sicher, in XL2007 kann ma dann bestimmt wählen ob Excel dann „blau“ anzeigt oder ein Flashfilm abläuft oder so Schnickschnack :smile:

Hier habe ich nämlich das Problem, dass alle Daten, die
3353600 enthalten und alle leeren Zeilen kopiert werden…

Mit Cells.select wälst du alle Zeilen aus, egal ob sichtbar oder nicht.

probiers mal so

Option Explicit
'
Sub tt()
Dim wks As Worksheet
Set wks = ActiveSheet
On Error GoTo Ende 'wegen Specialcells
With wks
 .Columns("M:M").AutoFilter Field:=1, Criteria1:="3353600"
 wks.Cells.SpecialCells(xlCellTypeVisible).Copy
 Workbooks.Add
 ActiveSheet.Paste
 .Columns("M:M").AutoFilter
End With
Range("A1").Select
Ende:
Application.CutCopyMode = False
If Err.Number 0 Then MsgBox "Filterbegriff nicht gefunden"
End Sub

Gruß
Reinhard

Columns(„M:M“).Select
Selection.AutoFilter Field:=1, Criteria1:=„3353600“
Cells.Select
Range(„M1“).Activate
Selection.Copy
Workbooks.Add
ActiveSheet.Paste

Hier habe ich nämlich das Problem, dass alle Daten, die
3353600 enthalten und alle leeren Zeilen kopiert werden…

Viele Grüße

Franziska