Anzeige
Archiv - Navigation
1596to1600
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

VBA Filtern

VBA Filtern
02.01.2018 20:07:00
Michel
Hallo zusammen
Ich möchte gerne per VBA in zwei Spalten einen Filter setzen und diesen Bereich kopieren.
Z.b in der Spalte B möchte ich nach gewissen Namen filtern und inder der Spalte C möchte ich absteigend sortieren.
Das filtern konnte ich noch per VBA noch schreiben:

ActiveSheet.Range("A:E").AutoFilter Field:=3, Criteria1:=Array( _
"Hans Muster", _
Operator:=xlFilterValues

Leider weiß ich nun nicht, wie ich noch in der Spalte C absteigend sortieren kann und diesen Bereich kopiere.
Danke für eure Hilfe
Gruss
Michel

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Filtern
02.01.2018 23:54:23
Werner
Hallo Michel,
ich bin davon ausgegangen, dass die Liste die gefiltert wird in der ersten Zeile Überschriften hat.
Public Sub Filtern_Kopieren_Sortieren()
Dim loLetzte As Long, loLetzteZiel As Long
'Bildschirmaktualisierung aus
Application.ScreenUpdating = False
With Worksheets("Tabelle1") 'Blattname anpassen
'letzte Zeile im Blatt ermitteln
loLetzte = .Cells(.Rows.Count, 3).End(xlUp).Row
'Autofilter auf A1 bis E letzte Zeile
.Range("A1:E" & loLetzte).AutoFilter Field:=3 _
, Criteria1:=Array("Hans Muster"), Operator:=xlFilterValues
'Filterergebnis kopieren ohne Überschriftenzeile
.AutoFilter.Range.Resize(.Rows.Count - 1).Offset(1, 0).Copy _
Worksheets("Tabelle2").Range("A1")
'Autofilter wieder raus
If .AutoFilterMode Then .AutoFilterMode = False
End With
With Worksheets("Tabelle2") 'Blattname anpassen
'letzte Zeile im Zielblatt ermitteln
loLetzteZiel = .Cells(.Rows.Count, 3).End(xlUp).Row
'Sortierfelder leeren
.Sort.SortFields.Clear
'Sortierspalte C1 bis C letzte Zeile
.Sort.SortFields.Add Key:=.Range("C1:C" & loLetzteZiel) _
, SortOn:=xlSortOnValues, Order:=xlAscending
'sorieren
With .Sort
.SetRange Range("A1:E" & loLetzteZiel)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.Apply
End With
End With
'Bildschirmaktualisierung an
Application.ScreenUpdating = True
End Sub
Gruß Werner
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige