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

Autofilter

Autofilter
06.09.2020 20:53:59
Lisa
Guten Abend,
ich bin auf der Suche nach einer funktionierenden Lösung für folgendes Problem:
Ich benutze den Autofilter in VBA und dann anschließend möchte ich den Autofilter zurücksetzen und nochmals anwenden.
Im Code sieht das Ganze so aus:
Sub TabelleFiltern()
'Daten löschen
ThisWorkbook.Worksheets("Daten Frontend").Range("D11:W12").Cells.Clear
ThisWorkbook.Worksheets("Daten Frontend").Range("D17:W19").Cells.Clear
ThisWorkbook.Worksheets("Tabelle1").Activate
ActiveSheet.Range("A3:U2000").AutoFilter
'1
'Filtern nach Fachteam
ThisWorkbook.Worksheets("Tabelle1").Range("A3:U2000").AutoFilter 5, "Front"
'Filtern nach SI Check
ThisWorkbook.Worksheets("Tabelle1).Range("A3:U2000").AutoFilter 1, "1"
'Filtern nach VKBG
ThisWorkbook.Worksheets("Tabelle1").Range("A3:U2000").AutoFilter 13, "ü"
'Information transponiert in ein anderes Tabellenblatt kopieren
'(Transponiert und ohne Format zu übertragen)
ThisWorkbook.Worksheets("Tabelle1").Activate
ThisWorkbook.Worksheets("Tabelle1").Range("I3:I2000").Select
Selection.Copy
ThisWorkbook.Worksheets("Daten Front").Activate
ActiveSheet.Range("D11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
ThisWorkbook.Worksheets("Tabelle1").Activate
ThisWorkbook.Worksheets("Tabelle1").Range("U3:U2000").Select
Selection.Copy
ThisWorkbook.Worksheets("Daten Front").Activate
ActiveSheet.Range("D12").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
If Worksheets("Tabelle1").AutoFilterMode Then Selection.AutoFilter
ThisWorkbook.Worksheets("T-GAP").ShowAllData
'2
'Filtern nach Fachteam
ThisWorkbook.Worksheets("Tabelle1").Range("A3:U2000").AutoFilter 5, "Front"
'Filtern nach SI Check
ThisWorkbook.Worksheets("Tabelle1").Range("A3:U2000").AutoFilter 1, "2"
'Filtern nach VKBG
ThisWorkbook.Worksheets("Tabelle1").Range("A3:U2000").AutoFilter 13, "ü"
'Information transponiert in ein anderes Tabellenblatt kopieren
'(Transponiert und ohne Format zu übertragen)
ThisWorkbook.Worksheets("Tabelle1").Activate
ThisWorkbook.Worksheets("Tabelle1").Range("I3:I2000").Select
Selection.Copy
ThisWorkbook.Worksheets("Daten Front").Activate
ActiveSheet.Range("D17").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
ThisWorkbook.Worksheets("Tabelle1").Activate
ThisWorkbook.Worksheets("Tabelle1").Range("U3:U2000").Select
Selection.Copy
ThisWorkbook.Worksheets("Daten Front").Activate
ActiveSheet.Range("D18").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
If Worksheets("T-GAP").AutoFilterMode Then Selection.AutoFilter
ThisWorkbook.Worksheets("T-GAP").ShowAllData
End Select
Nun das konkrete Problem:
Die Daten der ersten der Funktion "1" werden genau wie gewünscht in das Tabellenblatt Daten Front geschrieben. Bei "2"
schreibt die Funktion ebenfalls dir Inhalte aus "1" rein und dann die von "2". Allerdings möchte ich dort logischerweise nur die
Inhalte aus "2" drin stehen haben.
Ich hab es bereits mit der Funktion .ShowAllData probiert, das funktioniert leider nicht.
Danke für eure Hilfe!

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Autofilter
06.09.2020 22:30:35
Werner
Hallo,
teste mal, ohne die ganze Aktiviererei und Selektiererei.
Dann hast du mal "Daten Frontend" und mal "Daten Front". Willst du hier tatsächlich zwei verschiedene Blätter ansprechen?
Sub TabelleFiltern()
Application.ScreenUpdating = False
With ThisWorkbook.Worksheets("Daten Frontend")
Union(.Range("D11:W12"), .Range("D17:W19")).ClearContents
End With
With ThisWorkbook.Worksheets("Tabelle1")
.Range("A3:U2000").AutoFilter 5, "Front"
.Range("A3:U2000").AutoFilter 1, "1"
.Range("A3:U2000").AutoFilter 13, "ü"
With .AutoFilter.Range
.Columns("I").Copy
End With
ThisWorkbook.Worksheets("Daten Frontend").Range("D11").PasteSpecial _
Paste:=xlPasteValues, Transpose:=True
With .AutoFilter.Range
.Columns("U").Copy
End With
ThisWorkbook.Worksheets("Daten Frontend").Range("D12").PasteSpecial _
Paste:=xlPasteValues, Transpose:=True
Application.CutCopyMode = False
.Range("A3").AutoFilter
.Range("A3").AutoFilter 5, "Front"
.Range("A3").AutoFilter 1, "2"
.Range("A3").AutoFilter 13, "ü"
With .AutoFilter.Range
.Columns("I").Copy
End With
ThisWorkbook.Worksheets("Daten Frontend").Range("D17").PasteSpecial _
Paste:=xlPasteValues, Transpose:=True
With .AutoFilter.Range
.Columns("U").Copy
End With
ThisWorkbook.Worksheets("Daten Frontend").Range("D18").PasteSpecial _
Paste:=xlPasteValues, Transpose:=True
.Range("A3").AutoFilter
End With
Application.CutCopyMode = False
End Sub
Gruß Werner
Anzeige
Zusatz
06.09.2020 23:19:14
Werner
Hallo,
zusätzlich würde ich zur Sicherheit noch eine Prüfung mit einbauen, ob die jeweilige "Filterkombination" im Tabellenblatt überhaupt vorhanden ist.
Sub TabelleFiltern()
Application.ScreenUpdating = False
With ThisWorkbook.Worksheets("Daten Frontend")
Union(.Range("D11:W12"), .Range("D17:W19")).ClearContents
End With
With ThisWorkbook.Worksheets("Tabelle1")
If WorksheetFunction.CountIfs(.Columns(5), "Front", .Columns(1), 1, _
.Columns(13), "ü") Then
.Range("A3:U2000").AutoFilter 5, "Front"
.Range("A3:U2000").AutoFilter 1, "1"
.Range("A3:U2000").AutoFilter 13, "ü"
With .AutoFilter.Range
.Columns("I").Copy
End With
ThisWorkbook.Worksheets("Daten Frontend").Range("D11").PasteSpecial _
Paste:=xlPasteValues, Transpose:=True
With .AutoFilter.Range
.Columns("U").Copy
End With
ThisWorkbook.Worksheets("Daten Frontend").Range("D12").PasteSpecial _
Paste:=xlPasteValues, Transpose:=True
.Range("A1").AutoFilter
End If
If WorksheetFunction.CountIfs(.Columns(5), "Front", .Columns(1), 2, _
.Columns(13), "ü") Then
.Range("A3").AutoFilter
.Range("A3").AutoFilter 5, "Front"
.Range("A3").AutoFilter 1, "2"
.Range("A3").AutoFilter 13, "ü"
With .AutoFilter.Range
.Columns("I").Copy
End With
ThisWorkbook.Worksheets("Daten Frontend").Range("D17").PasteSpecial _
Paste:=xlPasteValues, Transpose:=True
With .AutoFilter.Range
.Columns("U").Copy
End With
ThisWorkbook.Worksheets("Daten Frontend").Range("D18").PasteSpecial _
Paste:=xlPasteValues, Transpose:=True
.Range("A3").AutoFilter
End If
End With
Application.CutCopyMode = False
End Sub
Gruß Werner
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige