Supportnet / Forum / Tabellenkalkulation
Filterfunktion
Frage
Hallo,
möchte mit Hilfe eines Markos und eines Filters Daten kopieren.
Der Autofilter soll eine tabelle nach dem im Feld A1 angegeben wert filtern, und die werte in denen NICHT der inhalt von a1 vorkommt ausblenden.
Muss ich A1 als variable als integer definieren, oder kann ich die Zelle direkt in die suche übernehemen, oder geht es nur ganz anders?
Antwort 1 von schnallgonz
Salve,
folgender Code filtert nach der aktuellen Markierung und kopiert den Kram in ein neues Blatt.
Zuerst Abfrage, ob richtige Zelle markiert.
mfg
schnallgonz
Ich stimme mit der Mathematik nicht überein.
Ich meine, dass die Summe von Nullen eine gefährliche Zahl ist. (S.J. Lec)
Signatur und Textformatierungen wurden mit SNTool V1.2.13 erstellt
folgender Code filtert nach der aktuellen Markierung und kopiert den Kram in ein neues Blatt.
Zuerst Abfrage, ob richtige Zelle markiert.
Sub FilterNeuesBlatt()
Dim guxu As String
Dim spalte As Integer
Dim i As Byte
´Sicherheitsabfrage
i = MsgBox("Haben Sie die Zelle mit dem zu exportierenden Filterwert markiert?", _
1 + vbInformation, "Markierenabfrage")
If i = 2 Then Exit Sub
´Filter ausstellen, sonst evtl.unvollständiger Export
ActiveSheet.AutoFilterMode = False
guxu = ActiveCell.Value
spalte = ActiveCell.Column
Selection.AutoFilter Field:=spalte, Criteria1:=guxu
Selection.CurrentRegion.SpecialCells(xlVisible).Copy
Worksheets.Add
ActiveSheet.Paste
Application.CutCopyMode = False
End Submfg
schnallgonz
Ich stimme mit der Mathematik nicht überein.
Ich meine, dass die Summe von Nullen eine gefährliche Zahl ist. (S.J. Lec)
Signatur und Textformatierungen wurden mit SNTool V1.2.13 erstellt
Antwort 2 von nighty
hi all :)
hier noch ein variante :)
gruss nighty
Option Explicit
Sub test()
If Cells(1, 1) <> "" Then
Sheets(1).Range(Cells(2, 1), Cells(Sheets(1).Range("A65536").End(xlUp).Row, 1)) _
.AutoFilter Field:=ActiveCell.Column, Criteria1:=Sheets(1).Range("A1"), VisibleDropDown:=False
Sheets(1).Rows("2:" & Sheets(1).Range("A65536").End(xlUp).Row).SpecialCells(xlVisible).Copy _
Sheets(2).Range("A" & Sheets(2).Range("A65536").End(xlUp).Row + 1)
Sheets(1).Range("A2").AutoFilter
End If
End Sub
hier noch ein variante :)
gruss nighty
Option Explicit
Sub test()
If Cells(1, 1) <> "" Then
Sheets(1).Range(Cells(2, 1), Cells(Sheets(1).Range("A65536").End(xlUp).Row, 1)) _
.AutoFilter Field:=ActiveCell.Column, Criteria1:=Sheets(1).Range("A1"), VisibleDropDown:=False
Sheets(1).Rows("2:" & Sheets(1).Range("A65536").End(xlUp).Row).SpecialCells(xlVisible).Copy _
Sheets(2).Range("A" & Sheets(2).Range("A65536").End(xlUp).Row + 1)
Sheets(1).Range("A2").AutoFilter
End If
End Sub

