Zeilen kopieren verbundene Zellen

Bild

Betrifft: Zeilen kopieren verbundene Zellen
von: Thomas
Geschrieben am: 05.08.2015 07:42:22

Hallo,
hat jemand ein macro das die letzten zwei gefüllten Zeilen kopiert und hinter der letzen gefüllten Zeile einfügt? Das Macro könnte die Spalte AE prüfen ob Sie gefüllt ist. Man findet dazu viel im Netz aber mein Problem ist das immer zwei Zellen in den Spalten a, J, S, und ac z.B. Zelle ( a77 mit a78, A 79 mit A80 unsw.) verbunden sind. Im Netz finde ich immer das so etwas mit verbundenen Zellen nicht geht. Aber vielleicht stimmt es ja nicht was im netz steht und jemand hat ein Trick auf Lager.
liebe grüsse thomas

Bild

Betrifft: AW: Zeilen kopieren verbundene Zellen
von: Daniel
Geschrieben am: 05.08.2015 08:56:24
Hi
probier mal:

With Cells(Rows.Count, "AE").end(xlup)
    .offset(-1, 0).resize(2).EntireRow.Copy
    .Offset(1, 1 - .column).PasteSpecial xlpasteall
End with
die Verbundenen Zellen bereiten nur dann ein Problem, wenn man versucht nur einen Teil eines Zellverbundes zu bearbeiten.
Man sollte also immer darauf achten, dass man den ganzen zellverbund "erwischt" und nicht nur Teile davon.
deswegen vielleicht alternativ folgender Code, wenn in Spalte A der zellverbund ist:
with Cells(Rows.count, "AE").End(xlup)
    With .Offset(0, 1 - .column)
        .MergeArea.EntirerRow.Copy
        .Offset(1, 0).PasteSpecial xlpasteall
    end with
end with
Gruß Daniel

Bild

Betrifft: AW: Zeilen kopieren verbundene Zellen
von: Thomas
Geschrieben am: 05.08.2015 11:01:21
Hallo Daniel,
cool das ich gefragt hab aber noch besser das du mir dieses Beispiel lieferst.
Das erste Beispiel arbeitet super es nimmt sogar die Formeln und die ausgeblendeten Spalten mit. Klasse
Das zweite Beispiel stenkert noch ein wenig hier .MergeArea.EntirerRow.Copy Objekt unterstützt diese Eigenschaft oder Methode nicht. Nun ja das erste macht es ja schon super.
Was muss ich noch ergänzen damit er nicht nur eine Zeile anfügt sonder 10 zeilen. So nach dem Motto
unten geht leider nicht.
hast Du eine Idee?
liebe grüsse thomas

Sub lk()
With Cells(Rows.Count, "T").End(xlUp)
    .Offset(-1, 0).Resize(2).EntireRow.Copy
    .Offset(1, 1 - .Column).PasteSpecial xlPasteAll
    .Offset(-1, 0).Resize(2).EntireRow.Copy
    .Offset(1, 1 - .Column).PasteSpecial xlPasteAll
End With
End Sub


Bild

Betrifft: AW: Zeilen kopieren verbundene Zellen
von: Daniel
Geschrieben am: 05.08.2015 11:09:49
sorry, versteh ich nicht.
Beschreibe bitte genauer was du willst.
Achte bitte darauf, dass deine Zusatzanfrage auch zu der Datei passt, die du in deiner ersten Anfrage zugrunde gelegt hast.
Beispielsweise verwirrt mich zusätzlich, dass du plötzlich für die Ermittlung der letzten Befüllten Zeile von Spalte AE auf T umschwenkst.
Sowas verwirrt, wenns eine Ergänzugnsfrage zur ersten Anfrage ist.
Gruß Daniel

Bild

Betrifft: AW: Zeilen kopieren verbundene Zellen
von: Thomas
Geschrieben am: 05.08.2015 12:11:28
Hallo Daniel,
du hast natürlich recht. Ich habe es erst mal in eine Testdatei getestet deshalb steht da jetzt das T.
In der richtigen Datei ist es die Spalte AE. sorry. Es geht darum das ich eine grosse Datei mit ca. hundert Tabellenblätter habe sie ist vollgestopft mit Formeln und ist deshalb schreibgeschützt. In dieser Datei geben wir täglich Daten ein. Immer wenn keine vorbereitete Zeile mehr da ist muss ich in allen Tabellen Blättern die letzte leere Zeile 10 mal kopieren so das wir wieder Daten eingeben können. Dies ist ganz schön Zeitaufreibend. Deshalb habe ich überlegt es mit einem Macro zu machen. Immer wenn das Tabellenblatt aktiviert wird soll das macro schauen ob in Spalte AE ein "neu" steht und wenn ja dann sollen 10 mal die letzte Zeilen kopiert werden. Dieses "neu" schreibe ich dann mit einer formel hin. Der erste Plan war Das Macro 10 mal hintereinander laufen zu lassen aber dies geht nicht dann komme ich mit meinem neu nicht mehr klar. Deshalb wäre es toll wenn das macro genauso bleibt aber nicht nur eine Zeile eingefügt wird sondern 10 Zeilen. Sagen wir mal kopiere die letzten beiden Zeilen und füge sie 10 mal hintereinander ein.
OH Oh ich hoffe ich habe dich jetzt nicht zu getextet.
vielen vielen dank für dein Interesse an meiner Aufgabe.
liebe grüsse thomas

Bild

Betrifft: AW: Zeilen kopieren verbundene Zellen
von: Daniel
Geschrieben am: 05.08.2015 12:48:47
Hi
wenn du einen Zellbereich einfach kopieren willst, dann gibst man als Zielbereich zum Einfügen immer nur die linke obere Zelle des Zielbereichs an.
dann wird der kopierte Bereich so eingefügt, wie er ist.
wenn du beim Einfügen den Kopierten Bereich vervielfachen willt, dann gibst du als Zielbereich nicht mehr nur die linke obere Zelle an, sondern du vergrösserst diesen Bereich um die entsprechende Anzahl Zellen.
Dafür kann man die Resize-Funktion benutzen, derern Verwendung hast du ja inzwischen kennengelernt.
wenn du beispielsweise die Zeilen 1:2 kopieren und 10x duplizieren willst dann:

Rows(1).Resize(2).Copy
Cells(3, 1).Resize(20).PasteSpecial xlpasteall

(dadurch dass du hier nur eine Spalte als Zielbereich angibst, werden nur die Zeilen dupliziert und die Spalten werden 1:1 übernommen.
die grösse des Zielbereichs sollte ein ganzzahliges Vielfaches des Quellbereichs sein.
Gruß Daniel

Bild

Betrifft: For Schleife
von: AlexG
Geschrieben am: 05.08.2015 12:23:01
Hallo Thomas,
da geht z.B. mit einer For- Next Schleife

Sub lk()
 With Cells(Rows.Count, "T").End(xlUp)
     .Offset(-1, 0).Resize(2).EntireRow.Copy
     For i = 0 To 8 Step 2
         .Offset(1 + i, 1 - .Column).PasteSpecial xlPasteAll
     Next i
 End With
 End Sub
Gruß
Alex

Bild

Betrifft: perfekt vielen dank an Daniel und Alex
von: Thomas
Geschrieben am: 05.08.2015 12:44:13
Hallo,
recht vielen vielen dank damit spare ich mir sehr viel Arbeit es funktioniert super.
liebe grüsse Thomas

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zeilen kopieren verbundene Zellen"