Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1696to1700
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

Gefilterte Datensätze ausschneiden und einfügen

Gefilterte Datensätze ausschneiden und einfügen
24.06.2019 12:18:56
Georg
Liebe Mitglieder, ich habe mal den MakroRecorder mitlaufen lassen wegen einer Filterung.
Die Datei ist sehr groß, daher über VBA.
Meine Frage:
Die Daten stehen in im Bereich "A:T" mit mehreren 1000 Datensätze, diese sollen dann gefiltert werden. (siehe Code)
Wie kann ich nach der Sortierung die gefilterten Datensätze aussschneiden und z. B. in das Blatt "Fehlzeiten" einfügen? Vielen Dank!!!
Sub Sort
dim TB2 as integer
Set TB2 = Sheets("Daten") 'die SQL Daten aus EQlab
Dim TB3 as integer
Set TB3 = Sheets("Fehlzeiten")
With TB2
.ListObjects("Daten").Range.AutoFilter Field:=20, Criteria1:= _
"=Samstag", Operator:=xlOr, Criteria2:="=Sonntag"
.ListObjects("Daten").Range.AutoFilter Field:=18, Criteria1:= _
"=21:00:00", Operator:=xlAnd
End With
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Gefilterte Datensätze ausschneiden und einfügen
24.06.2019 13:40:08
Rob
Hi Georg,
das lässt sich mit ADODB und einer SQL-Anweisung bewerkstelligen. Der SQL-Befehlt könnte wie folgt aussehen:
SELECT * From (NameDesArbeitsblattes$) WHERE (Tag = 'Samstag' AND Tag = 'Sonntag') AND (Uhrzeit BETWEEN '09:00:00' and '21:00:00')
Grüße, Rob
AW: Gefilterte Datensätze ausschneiden und einfügen
25.06.2019 04:30:31
Werner
Hallo Georg,
so:
Sub Sort()
Dim TB2 As Worksheet, TB3 As Worksheet
Set TB2 = Worksheets("Daten")
Set TB3 = Worksheets("Fehlzeiten")
With TB2.ListObjects("Daten")
.Range.AutoFilter Field:=20, Criteria1:= _
"=Samstag", Operator:=xlOr, Criteria2:="=Sonntag"
.Range.AutoFilter Field:=18, Criteria1:= _
"=21:00:00", Operator:=xlAnd
With .AutoFilter.Range
.Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Copy
TB3.Range("A1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Application.DisplayAlerts = False
.Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Delete
End With
.AutoFilter.ShowAllData
End With
Set TB2 = Nothing: Set TB3 = Nothing
End Sub
Gruß Werner
Anzeige
Fehlerbehandlung vergessen, falls....
25.06.2019 05:14:53
Werner
Hallo Georg,
...der Filter mal kein Ergebnis liefert:
Sub Sort()
Dim TB2 As Worksheet, TB3 As Worksheet
Set TB2 = Worksheets("Daten")
Set TB3 = Worksheets("Fehlzeiten")
Application.ScreenUpdating = False
With TB2.ListObjects("Daten")
.Range.AutoFilter Field:=20, Criteria1:= _
"=Samstag", Operator:=xlOr, Criteria2:="=Sonntag"
.Range.AutoFilter Field:=18, Criteria1:= _
"=21:00:00", Operator:=xlAnd
With .AutoFilter.Range
If .Columns(1).SpecialCells(xlCellTypeVisible).Cells.Count > 1 Then
.Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Copy
TB3.Range("A1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Application.DisplayAlerts = False
.Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Delete
Else
MsgBox "Filter liefert kein Ergebnis." & vbLf & "Es wurde nichts kopiert."
End If
End With
.AutoFilter.ShowAllData
End With
Set TB2 = Nothing: Set TB3 = Nothing
End Sub
Gruß Werner
Anzeige

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige