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

Filtern, kopieren, einfügen

Filtern, kopieren, einfügen
15.11.2016 15:23:43
Matthias
Hey liebe Experten :)
ich sitz mal wieder an vba und bekomm etwas nicht so hin wie ich gern möchte...
ich will einen Datensatz nacheinander jeweils nach einem Kriterium filtern (11,12 und 14) die gefilterten Daten dann kopieren und in ein neues Tabellenblatt einfügen
Und evtl. könnt ihr mir auch gleich noch einen Ansatz für das geben was dann noch mit rein soll^^ und zwar sollen die Tabellenblätter dann noch umgenannt werden mit bspw. A, B & C --> dafür hab ich bisher leider noch keine Idee wie das gehen soll
Mein Ansatz bisher:
  • 
    Sub DatenFilter()
    Dim Gesamt As Worksheet
    Set Gesamt = ActiveWorkbook.ActiveSheet
    i = Array("11", "12", "14")
    For Each Item In i
    Gesamt.Range("A:AI").AutoFilter Field:=23, Criteria1:=i
    Gesamt.Range("A1:AI" & ActiveSheet.UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible).Copy
    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Next
    End Sub
    

  • Hoffe ihr könnt mir weiterhelfen und das mein Ansatz nicht völlig falsch ist.
    Grüße Matthias

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

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Filtern, kopieren, einfügen
    16.11.2016 11:20:03
    Michael
    Hallo Matthias!
    Das geht so...
    Wenn Du den Filterbereich mit Überschriften kopieren willst:
    Sub a()
    Dim Wb As Workbook: Set Wb = ThisWorkbook
    Dim WsQ As Worksheet: Set WsQ = Wb.Worksheets(1)
    Dim WsZ As Worksheet
    Dim Daten As Range, f, i As Long
    f = Array(11, 12, 14)
    With WsQ
    Set Daten = .Range("A1:AI" & .Cells(.Rows.Count, 35).End(xlUp).Row)
    For i = LBound(f) To UBound(f)
    If WsQ.AutoFilterMode Then WsQ.AutoFilterMode = False
    Daten.AutoFilter field:=23, Criteria1:=f(i)
    .AutoFilter.Range.Copy
    Set WsZ = Worksheets.Add
    With WsZ
    .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial _
    xlPasteValuesAndNumberFormats
    .Name = "Ergebns_Filter_" & f(i)
    End With
    Set WsZ = Nothing
    Next i
    .Activate
    Application.CutCopyMode = False
    .AutoFilterMode = False
    End With
    End Sub
    
    Wenn Du den Filterbereich ohne Überschriftenzeile kopieren willst:
    Sub a()
    Dim Wb As Workbook: Set Wb = ThisWorkbook
    Dim WsQ As Worksheet: Set WsQ = Wb.Worksheets(1)
    Dim WsZ As Worksheet
    Dim Daten As Range, f, i As Long
    f = Array(11, 12, 14)
    With WsQ
    Set Daten = .Range("A1:AI" & .Cells(.Rows.Count, 35).End(xlUp).Row)
    For i = LBound(f) To UBound(f)
    If WsQ.AutoFilterMode Then WsQ.AutoFilterMode = False
    Daten.AutoFilter field:=23, Criteria1:=f(i)
    With .AutoFilter.Range
    .Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count).Copy
    End With
    Set WsZ = Worksheets.Add
    With WsZ
    .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial _
    xlPasteValuesAndNumberFormats
    .Name = "Ergebns_Filter_" & f(i)
    End With
    Set WsZ = Nothing
    Next i
    .Activate
    Application.CutCopyMode = False
    .AutoFilterMode = False
    End With
    End Sub
    
    Passt? ;-)
    LG
    Michael
    Anzeige
    AW: Filtern, kopieren, einfügen
    17.11.2016 08:15:54
    Matthias
    Hey Michael,
    ja das funktioniert einwandfrei :) Ich danke dir!
    Grüße Matthias
    Gerne, Danke für die Rückmeldung! owT
    17.11.2016 08:41:21
    Michael

    308 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige