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

Zeile kopieren mit Filter und Gruppierung

Zeile kopieren mit Filter und Gruppierung
31.08.2017 15:13:43
Marc
Hallo zusammen,
ich habe eine Tabelle mit Filter, einige Spalten sind zudem gruppiert (und "eingeklappt" -> sorry, keine Peilung wie ich das sonst beschreiben soll;-). Ich möchte nun jeweils die ganze Zeile komplett (dh. inkl. den aktuell nicht sichtbaren, gruppierten Spalten) in ein anderes Tabellenblatt kopieren. Leider wird mir so aber nur jeweils die effektiv sichtbaren Spalten übertragen, somit verschieben sich natürlich die Daten je nach dem, welche Gruppierung gerade geöffnet ist.
Mit

with Range X
If .FilterMode = True Then
.ShowAllData
End If
end with
funktioniert es. Aber damit setze ich natürlich die aktuellen Filter zurück, diese würde ich aber gerne beibehalten.
Gibt es eine Möglichkeit, in einem gefilterten Bereich eine ganze Zeile komplett inkl. ausgeblendet, gruppiert oder was auch immer zu kopieren?
Danke im Voraus für Eure Hilfe
Lg
Marc

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile kopieren mit Filter und Gruppierung
01.09.2017 10:42:44
Michael
Hallo!
Wenn ich Dich richtig verstanden habe, willst Du Daten einer bestimmte Zeile aus einem AutoFilter-Bereich (der aktiv gefiltert) ist in ein zweites Blatt übertragen, aber innerhalb des AutoFilter-Bereichs sind auch noch Spalten ausgeblendet - Du willst weder Spalten-Gruppierung noch Zeilen-Filterung aufheben. Richtig?
Dann hol Dir die Zeilen-Daten doch zellenweise und übertrage die jeweiligen Zellwerte so ins Zielblatt:
schematisch
Sub a()
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim WsQ As Worksheet: Set WsQ = Wb.Worksheets(1)
Dim WsZ As Worksheet: Set WsZ = Wb.Worksheets(2)
Dim Zeile As Range, i&
Application.ScreenUpdating = False
With WsQ
With .AutoFilter
Set Zeile = .Range.Rows(4)
For i = 1 To Zeile.Cells.Count
WsZ.Cells(1, i) = Zeile.Cells(i)
Next i
End With
End With
Set Wb = Nothing: Set WsQ = Nothing
Set WsZ = Nothing: Set Zeile = Nothing
End Sub
LG
Michael
Anzeige
AW: Zeile kopieren mit Filter und Gruppierung
01.09.2017 13:58:11
Marc
Hallo Michael,
zunächst vielen Dank für Deine Antwort. Ja, Du hast mich richtig verstanden. Hmmm, auf die Idee bin ich gar nicht gekommen, tönt aber interessant! Ich bin aber nicht ganz sicher, wie sich das auf die Geschwindigkeit auswirken würde, ich habe etwa 250 Spalten zu kopieren...
In der Zwischenzeit habe ich im Netz noch eine andere Lösung gefunden: Ich speichere mir die Filter vorher ab, hebe sie auf, kopiere die komplette Zeile und stelle die Filter nachher wieder her. Und das funktioniert sogar ganz gut, anbei die zwei relevanten Subs:
Sub Filter_sichern_und_aufheben()
Dim objFilter As Filter
Dim bolFilter As Boolean
With ActiveSheet
If .AutoFilterMode Then
For Each objFilter In .AutoFilter.Filters
If objFilter.On Then
bolFilter = True
Exit For
End If
Next
If bolFilter Then
ActiveWorkbook.CustomViews.Add ViewName:="temporary", _
PrintSettings:=True, RowColSettings:=True
.ShowAllData
End If
End If
End With
End Sub
Sub Filter_wiederherstellen()
On Error Resume Next
With ActiveWorkbook.CustomViews("temporary")
.Show
.Delete
End With
End Sub
Das funktioniert sogar einigermassen schnell. Aber nochmals vielen Dank für Deine Bemühung, ich weiss es sehr zu schätzen!
Lg Marc
Anzeige
Spalten-Gruppierungen korrekt angezeigt?
01.09.2017 17:26:19
KlausF
Hi Marc,
bei mir werden mit diesem Makro Gruppierungen von Spalten
aber nicht korrekt wieder hergestellt. Wie ist das bei Euch?
Excel X, Excel 2003, Excel 2011, Mac
Gruß
Klaus
AW: Spalten-Gruppierungen korrekt angezeigt?
02.09.2017 12:08:27
Marc
Hallo Klaus,
ich bin nicht sicher, ob ich Dich richtig verstehe:
Bei mir ging es ja im wesentlichen darum, dass bei einer gefilterte Tabelle mit gruppierten Spalten nicht die ganze Zeile(sprich: inkl. den gruppierten Spalten) kopiert wurde. Mit den zwei Subs aus meiner Antwort habe ich quasi einen "Workaround" gefunden, mit dem mir die bestehenden Zeilen-Filter aufgehoben und temporär alle ZEILEN angezeigt werden (ausgeblendete oder gruppierte Spalten werden dabei nicht verändert). So klappt das kopieren auch für die gruppierten/ausgeblendeten Spalten. Anschliessend werden die initialen Filter erfolgreich wiederhergestellt.
Oder anders gesagt: Die Makros arbeiten ausschliesslich mit den gesetzten Filtern, ausgeblendete oder gruppierte Spalten werden nicht verändert. Für mich ist es nicht wichtig, das die kopierte Zeile Gruppierungen mitnimmt, Hauptsache alle Spaltenwerte werden mitkopiert.
Entsprechend glaube ich, dass diese Makros Dein Bedürfnis (so ich es richtig verstanden habe) leider nicht erfüllen können. Hat Dir das geholfen?
Lg Marc
Anzeige
Danke, ist damit geklärt
02.09.2017 15:45:36
KlausF
Hallo Marc,
[... Anschliessend werden die initialen Filter erfolgreich wiederhergestellt.]
Ist schon klar, Du brauchst das ja nur für Zeilen. Und da funktioniert es ja auch bestens.
Ich hatte nur mal so herum experimentiert und dabei auch Spalten gruppiert. Damit ging
es dann nicht (Zeilen wurden allerdings wieder korrekt angezeigt).
Und wenn man Zeilen manuell ausgeblendet hat (also Zeilenhöhe auf Null gestellt) dann
funktioniert es mit diesen Zeilen auch nicht. Hatte mich nur mal interessiert ob das vielleicht
ein spezifisches Mac-Excel Problem ist ...
Danke für Deine Rückmeldung!
Gruß
Klaus
Anzeige
AW: Zeile kopieren mit Filter und Gruppierung
02.09.2017 12:13:02
Marc
Hallo Michael,
ich habe rein aus Neugierde Deine Lösung mal implementiert und den Zeitaufwand verglichen. Meine Befürchtung hat sich dabei als korrekt erwiesen, obwohl Deine Lösung erstaunlich schnell war, ist der Zeitaufwand ungefähr 3x grösser.
Nun ist mir noch die Idee gekommen, dass man die Zeilen anstelle direkt an den Zielort ev. auch in ein Array schreiben und schlussendlich nur noch das Array an den Zielort schreiben könnte. Mit dieser Lösung könnte Dein Vorschlag schlussendlich doch noch schneller sein. Wenn ich Zeit habe, versuche ich das dann mal...
Lg
Marc

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige