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

Auswahl mit Autofilter und verschieben

Auswahl mit Autofilter und verschieben
02.12.2008 15:05:00
Josef
Hallo!
Ich habe in einem Arbeitsblatt in der Spalte Q Zahlen von 11 bis 19 stehen.
mit dem Autofilter filtere ich jetzt zB. alle Datensätze mit der Zahl 12.
Ich möchte nun diese gefilterten Datensätze der Zahl 12 aus dem aktuellen Datenblatt entfernen und z.B. in der Tabelle2 an die nächste freie Stelle in der Spalte A einfügen.
wie würde hier bitte eine VBA Lösung lauten?
Danke

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Auswahl mit Autofilter und verschieben
03.12.2008 11:31:00
fcs
Hallo Josef,
etwa so
Gruß
Franz

Sub FilterKopierenLoeschen()
Dim wksFilter As Worksheet, objFilter As Filter
Dim wksZiel As Worksheet
Dim lngZeile As Long, bolAlle As Boolean
Dim varAuswahl, strVerzeichnisAktuell
On Error GoTo Fehler
varAuswahl = MsgBox("Gefilterte Daten nach Tabelle2 kopieren und löschen?", _
vbYesNo + vbQuestion, "Filter-Export")
If varAuswahl = vbYes Then
Set wksFilter = ActiveSheet 'Tabellenblatt mit Autofilter
Set wksZiel = Worksheets("Tabelle2")
'Zeile der Zieltabelle ab der Daten eingefügt werden sollen
With wksZiel
lngZeile = .Cells.SpecialCells(xlCellTypeLastCell).Row + 1
End With
With wksFilter
If .AutoFilterMode = True Then
'prüfen, ob ein Filter gesetzt ist
bolAlle = True
For Each objFilter In .AutoFilter.Filters
If objFilter.On = True Then
bolAlle = False
End If
Next
If bolAlle = True Then
If MsgBox("Es wurde kein Filter gesetzt, trotzdem Kopieren und Löschen?", _
vbYesNo) = vbNo Then
GoTo Fehler
End If
End If
'Daten Kopieren
.Range(.Rows(.AutoFilter.Range.Row + 1), .Rows(.AutoFilter.Range.Row _
+ .AutoFilter.Range.Rows.Count - 1)).Copy Destination:=wksZiel.Cells(lngZeile, 1)
Application.ScreenUpdating = False
'Kopierte (sichtbare) Zeilen löschen
For lngZeile = .AutoFilter.Range.Row + .AutoFilter.Range.Rows.Count - 1 _
To .AutoFilter.Range.Row + 1 Step -1
If .Rows(lngZeile).Hidden = False Then .Rows(lngZeile).Delete Shift:=xlShiftUp
Next
Application.ScreenUpdating = True
If bolAlle = False Then .ShowAllData
End If
End With
End If
Fehler:
With Err
If Err  0 Then
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End If
End With
Set wksZiel = Nothing: Set wksFilter = Nothing
End Sub


Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige