Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1936to1940
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
Inhaltsverzeichnis

spezialfilter mit vba

spezialfilter mit vba
25.07.2023 15:10:22
Gerlinde
hallo leute,

ich freue mich sehr über etwas hilfe von euch.

ausgangslage:
ein blatt mit kriterieneingabe (Infos)
ein blatt zur ergebnisanzeige (FilterLand)
immer mehr werdende blätter welche zu filtern sind (50, 258, 259 ...)

als basis habe ich dieses video verwendet:
https://www.youtube.com/watch?v=Q6-DxC2u-fU

hier der code von mir:
Sub Filter()

Dim lngLastRow50 As Long
Dim lngLastRow258 As Long
Dim lngLastRow259 As Long
Dim lngLastRow260 As Long
Dim lngLastRowIn As Long
Dim lngLastRow As Long

lngLastRow50 = Sheets("50").Cells(Rows.Count, 1).End(xlUp).Row
lngLastRow258 = Sheets("258").Cells(Rows.Count, 1).End(xlUp).Row
lngLastRow259 = Sheets("259").Cells(Rows.Count, 1).End(xlUp).Row
lngLastRow260 = Sheets("260").Cells(Rows.Count, 1).End(xlUp).Row
lngLastRowIn = Sheets("Infos").Cells(Rows.Count, 1).End(xlUp).Row
lngLastRow = Sheets("FilterLand").Cells(Rows.Count, 1).End(xlUp).Row

Sheets("FilterLand").Select
Range("A1").Select

Sheets("50").Range("A1:I" & lngLastRow50).AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sheets("Infos").Range("A1:E" & lngLastRowIn), _
CopyToRange:=Sheets("FilterLand").Range("A" & lngLastRow), _
Unique:=False
lngLastRow = Sheets("FilterLand").Cells(Rows.Count, 1).End(xlUp).Row + 2

Sheets("258").Range("A1:I" & lngLastRow258).AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sheets("Infos").Range("A1:E" & lngLastRowIn), _
CopyToRange:=Sheets("FilterLand").Range("A" & lngLastRow), _
Unique:=False
lngLastRow = Sheets("FilterLand").Cells(Rows.Count, 1).End(xlUp).Row + 2

Sheets("259").Range("A1:I" & lngLastRow259).AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sheets("Infos").Range("A1:E" & lngLastRowIn), _
CopyToRange:=Sheets("FilterLand").Range("A" & lngLastRow), _
Unique:=False
lngLastRow = Sheets("FilterLand").Cells(Rows.Count, 1).End(xlUp).Row + 1

End Sub

leider ignoriert er meine filtereingabe (im blatt Infos in der Zeile 2) und ich verstehe nicht weshalb. das ist mein erstes problem.
das zweite ist, dass ich weiß nicht wie ich den code umschreiben muss damit ich künfitg keine änderung am code machen muss, wenn neue
blätter hinzugefügt werden.

vielen dank im voraus für entsprechende rückmeldungen

glg
gerlinde

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
spezialfilter mit vba
27.07.2023 14:38:37
Gerlinde
Hallo ihr Lieben,

eines ist doch noch offen ...

Da die Tabellenblätter stetig mehr werden sollte der Code irgendwie so umgeschrieben werden,
dass automatisch alle Blätter durchsucht werden. Kann mir da bitte jemand sagen, wier der Code
dann auszusehen hat?

GLG
Gerlinde
AW: spezialfilter mit vba
27.07.2023 15:40:14
daniel
Hi
im Prinzip so:

dim ws as worksheet

dim lngLastRowIn
lngLastRowIn = Sheets("Infos").Cells(Rows.Count, 1).End(xlUp).Row

for each ws in thisworkbook.worksheets
select case ws.name
case "FilterLand", "Infos" ' hier alle Sheetnamen auflisten, die nicht kopiert werden sollen
'--- hier passiert nichts
case else
ws.Range("A:I").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sheets("Infos").Range("A1:E" & lngLastRowIn), _
CopyToRange:=Sheets("FilterLand").Cells(Row.count, 1).end(xlup).Offset(1, 0), _
Unique:=False
end Select
next


Gruß Daniel
Anzeige
AW: spezialfilter mit vba
27.07.2023 08:43:46
Daniel
Hi

Zu deinen Filterproblem:
Der Joker * steht für beliebigen Text - mit der Betonung auf Text.
Das heißt, Zahlen und damit auch Datumswerte werden mit diesem Filterkriterum ausgeschlossen.
Wenn du Zeilen filtern willst die Datumswerte enthalten, dann probier mal als Kriterium &gt0 oder &lt&gt

Gruß Daniel
spezialfilter mit vba
27.07.2023 09:08:44
Gerlinde
Hallo Daniel,

Danke für deinen Hinweis ... jetzt Funktioniert der Filter wie er soll :)

GLG
Gerlinde
AW: spezialfilter mit vba
25.07.2023 15:30:23
Rudi Maintaire
Hallo,
die lngLastRowxxx brauchst du nicht. Benutze einfach den aktuellen Bereich.
Bsp:
Sheets("50").Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sheets("Infos").Range("A1:E" & lngLastRowIn), _
CopyToRange:=Sheets("FilterLand").Range("A" & lngLastRow), _
Unique:=False

Warum die Filterkriterien ignoriert werden, kann ich ohne die Mappe nicht beurteilen.

Gruß
Rudi
Anzeige
AW: spezialfilter mit vba
26.07.2023 11:18:17
Herbert Grom
Hallo Gerlinde,

welche Spalte willst du filtern: Die Spalte E im Blatt "Infos" oder die Spalte G im Blatt "Übersicht"?

Servus
spezialfilter mit vba
27.07.2023 08:44:22
Gerlinde
Hallo Herbert,

... gestern konnte man hier anscheinend keine Einträge mehr posten ...

die Filterkriterien sind am Blatt Infos Zeile A1:H2 -> in erster Linie soll nur das Land gefiltert werden.
Die Ergebnisse sollen am Blatt FilterLand angezeit werden.
Gefiltert soll über alle Blätter (außer Übersicht) werden.
Das Blatt Übersicht hat mit dem Filtern nicht zu tun

GLG
Gerlinde
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige