Supportnet / Forum / Tabellenkalkulation
Bereich Filtern per Makro und Ergebnis kopieren
Frage
Hallo Leute!
Was muss ich eingeben, wenn ich Daten für eine Sortierung makieren und dann über den Filter die ausgegebenen Daten in ein anderes Arbeitblatt kopieren möchte.
Ich muss dabei berücksichtigen können, dass die Zeilenanzahl variert (Makieren bis letzte Zeile).
Danke im voraus!
Ines
Antwort 1 von Flupo
Ich habe mal eine Lösung für ein ähnliches Problem gebastelt:
Voraussetzungen:
- der Datenbereich wird markiert und erhält den Namen "Datenbank" (ohne Anführungszeichen)
Hier das Makro zum Kopieren:
Einzige Hürde ist die Zeile 3, in der die Filterbedingungen definiert werden. Was dort hin muss, bekommst du aber am einfachsten raus, wenn du mal ein Makro aufzeichnest und die gesuchte Filterung einstellst.
Gruss Flupo
Voraussetzungen:
- der Datenbereich wird markiert und erhält den Namen "Datenbank" (ohne Anführungszeichen)
Hier das Makro zum Kopieren:
Range("Datenbank").Select
Selection.AutoFilter
Selection.AutoFilter Field:=7, Criteria1:="<>" 'nur gesuchte DS anzeigen
Application.Goto Reference:="Datenbank"
Selection.Copy
Sheets("Zieltabelle").Select
Range("A1").Select 'Einfügestelle auswählen
ActiveSheet.Paste 'einfügen
Einzige Hürde ist die Zeile 3, in der die Filterbedingungen definiert werden. Was dort hin muss, bekommst du aber am einfachsten raus, wenn du mal ein Makro aufzeichnest und die gesuchte Filterung einstellst.
Gruss Flupo
Antwort 2 von schnallgonz
Um alles zu markieren:
erste Zelle auswählen (wird wohl konstant sein),
dann zählen lassen, wieviel benutzte Zeilen und Spalten es gibt,
markieren lassen
geht natürlich nur, wenn ausser den zu verwendenden Daten nichts darunter und daneben steht;
reicht das?
mfg
schnallgonz
erste Zelle auswählen (wird wohl konstant sein),
dann zählen lassen, wieviel benutzte Zeilen und Spalten es gibt,
markieren lassen
Sub MarkiereDatenbereich()
Dim WievielZeilen As Long
Dim WievielSpalten As Integer
Range("A1").Select
WievielZeilen = ActiveSheet.UsedRange.Rows.Count
WievielSpalten = ActiveSheet.UsedRange.Columns.Count
Selection.Resize(WievielZeilen, WievielSpalten).Select
End Sub
geht natürlich nur, wenn ausser den zu verwendenden Daten nichts darunter und daneben steht;
reicht das?
mfg
schnallgonz

