Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
960to964
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
960to964
960to964
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Duplizieren gefilterer Zeilen

Duplizieren gefilterer Zeilen
16.03.2008 10:18:44
Günter
Hallo Zusammen,
Ich brauchte ein Makro, das markierte Zeilen in einer gefilterter Tabelle dupliziert.
Diese duplizierten Zeilen sollen anschließend hinter der jeweils entsprechend markierten Zeile eingefügt werden.
Beispiel:
- Zeilen 2, 7, 12 und 15 sind durch Filter sichtbar.
- Zeilen 7 und 12 werden für Duplizieren markiert.
- Nach Duplizieren soll Z7 unter Z7 und Z12 unter Z12 eingefügt.
- D.h. nach dem Duplizieren der markierten Z7 und Z12 sehe ich die Zeilen
Z2, Z7, Z8 (=Z7), Z12, Z13(=Z12) und Z16 (='alte' Z15).
Kann mir hier vielleicht jemand helfen?
Danke im voraus!
Gruß Günter

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Duplizieren gefilterer Zeilen
16.03.2008 10:48:00
Tino
Hallo,
meist du so?

Sub test()
Dim A As Long
Application.ScreenUpdating = False
For A = 1 To Selection.Areas.Count
Rows(Selection(A).Row).Copy
Rows(Selection(A).Row + 1).PasteSpecial
Next A
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub


Gruß
Tino

AW: Duplizieren gefilterer Zeilen
16.03.2008 11:01:00
Günter
Hallo Tino,
Zunächst mal Danke!
Dein Code funktioniert nicht ganz so wie ich möcht.
1) es wird nur die oberste der markierten Zeilen dupilziert
2) diese 'oberste' Zeile überschreibt beim Einfügen die nächste Zeile
Kann Du mir weiterhelfen.
Danke Günter

Anzeige
AW: Duplizieren gefilterer Zeilen
16.03.2008 11:08:39
Tino
Hallo,
habe es auch jetzt bemerkt, müssen es doch anders machen.

Sub test()
Dim A As Long, B As Long, MekZ(1 To 65000) As Long
Application.ScreenUpdating = False
For B = 1 To Selection.Areas.Count
If B = 1 Then
MekZ(B) = Selection.Areas(B).Row
Else
MekZ(B) = Selection.Areas(B).Row
End If
Next B
For A = 1 To B - 1
Rows(MekZ(A)).Copy
Rows(MekZ(A) + 1).PasteSpecial
Next A
Erase MekZ()
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub


Gruß
Tino

AW: Duplizieren gefilterer Zeilen
16.03.2008 11:50:54
Günter
Hallo Tino,
irgendetwas mache ich wohl falsch.
Ich habe Deinen Code in ein Modul eingefügt.
Beim Test kopiert er immer nur die erste markierte Zeile und überschreibt damit die nächste Zeile.
Wenn ich mir mit 'MsgBox Selection.Areas.Count' den Wert anzeigen lasse, ist dieser immer =1!
Hast Du eine Idee?
Danke Günter

Anzeige
AW: Duplizieren gefilterer Zeilen
16.03.2008 12:05:44
Tino
Hallo,
liegt nicht an dir, bekomme es einfach noch nicht hin die Reihenfolge bei Areas
von erster Zeile in Selektion bis Letzte Zeile in Selektion einzuhalten.
Er gibt mir die Reihenfolge wie ich sie markiert habe zurück.
Ich arbeite daran!
Gruß
Tino

AW: Duplizieren gefilterer Zeilen
16.03.2008 12:10:00
Günter
Hallo Tino,
schon mal Danke im Voraus.
Gruß Günter

AW: Duplizieren gefilterer Zeilen
16.03.2008 13:04:00
Tino
Hallo,
bin jetzt einen anderen weg gegangen.

Sub test()
Dim A As Long
Dim erste As String, Ber As Variant
Application.ScreenUpdating = False
erste = Selection.Address
Ber = Split(erste, ",")
MsgBox Range(Ber(3 - 1)).Row
For A = Selection.Areas.Count To 1 Step -1
Rows(Range(Ber(A - 1)).Row + 1).EntireRow.Insert
Rows(Range(Ber(A - 1)).Row).Copy
Rows(Range(Ber(A - 1)).Row + 1).PasteSpecial
Next A
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub


Gruß
Tino

Anzeige
AW: Duplizieren gefilterer Zeilen
16.03.2008 13:16:00
Gerd
Hallo Günter, hallo Tino,
der erste Weg war doch o.k.

Sub test()
Dim A As Long, B As Long, MekZ() As Long
Application.ScreenUpdating = False
ReDim MekZ(1 To Selection.Areas.Count)
For A = 1 To Selection.Areas.Count
MekZ(A) = Selection.Areas(A).Row
Next A
For B = UBound(MekZ) To LBound(MekZ) Step -1
Rows(MekZ(B)).Copy
Rows(MekZ(B) + 1).Insert shift:=xlDown
Next B
Erase MekZ()
Application.CutCopyMode = False
Cells(1, Selection.Column).Activate
Application.ScreenUpdating = True
End Sub


Grüße Gerd

AW: Duplizieren gefilterer Zeilen
16.03.2008 13:34:00
Günter
Hallo Tino und Gerd,
es klappt immer noch nicht.
D.h. es wird bei euch beiden nur die erste markierte Zeile dupliziert.
In Tino's Vorschlag erhalte ich bei
MsgBox Range(Ber(3 - 1)).Row
noch einen Laufzeitfehler 9 'Index außerhalb gültigen Bereich'
Irgendwie scheint die Lösung verzwickt zu sein.
Könnt Ihr mir noch weiterhelfen?
Danke Günter

Anzeige
AW: Duplizieren gefilterer Zeilen
16.03.2008 13:35:00
Erich
Hallo Günter,
probier mal

Sub Dupl_gefilterte()
Dim zz As Long
Application.ScreenUpdating = False
For zz = Selection.Row + Selection.Rows.Count - 1 To Selection.Row Step -1
With Rows(zz)
If Not .Hidden Then
.Copy
.Insert Shift:=xlDown
End If
End With
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Dank!!!!!
16.03.2008 13:39:55
Günter
Hallo Erich,
klappt tadellos!!!
Danke!
Schönen Sonntag
Günter

AW: Duplizieren gefilterer Zeilen
16.03.2008 13:42:00
Gerd
Hallo Günter,
haben sich deine Wünsche gegenüber deinem ersten Beitrag geändert ?
Ich bin davon ausgegangen, dass jede Zelle, deren Zeile kopiert werden soll
von dir markiert wird.
Gruß Gerd

Anzeige
AW: Duplizieren gefilterer Zeilen
16.03.2008 13:59:15
Günter
Hallo Gerd,
nein, meine Wünsche sind die gleichen geblieben.
D.h. markierte und vorher gefilterte Zeilen werden mit der Lösung dupliziert!
Danke auch an Dich!
Gruß
Günter

AW: Duplizieren gefilterer Zeilen
16.03.2008 14:03:00
Tino
Hallo,
mach mal die MsgBox raus, war für mich eine kontrolle.
Gruß
Tino

AW: Duplizieren gefilterer Zeilen
16.03.2008 14:08:00
Günter
Hallo Tino,
auch Dank an Dich.
Die Lösung von Erich funktioniert!
Schönen Sonntag
Günter

AW: Duplizieren gefilterer Zeilen
16.03.2008 15:29:10
Tino
Hallo,
mach mal die MsgBox raus, war für mich eine kontrolle.
Gruß
Tino

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige