Public Sub Zeilen_einfügen() Dim i As Long, loLetzte As Long
With Worksheets("Tabelle1") 'Battname anpassen loLetzte = .Cells(.Rows.Count, 20).End(xlUp).Row 'Zahl bezieht sich auf das eindeutige Merkmal, hier die Hilfsspalte For i = loLetzte To 6 Step -1 'Ab welcher Spalte soll die Logik des Makros greifen. Anpassen kann man die erste Zahl. bei der Zahl minus 1 beginnt das Makro If .Cells(i, 20) <> "" And .Cells(i - 1, 20) <> "" Then 'Hintere Zahl in Klammer gibt die Spalte des Bezugs an If .Cells(i, 20).Value <> .Cells(i - 1, 20).Value Then 'Hintere Zahl in Klammer gibt die Spalte des Bezugs an .Rows(i - 1).Copy .Rows(i).Resize(20).Insert 'Zahl in Klammer gibt die Anzahl der einzufügenden Zeilen an Application.CutCopyMode = False End If End If Next i End With
End Sub
Hallo zusammen, oben stehender Code sorgt dafür dass in Tabelle1 20 mal die Zeile kopiert und einfügt wenn in der 20. Spalte ein neuer Name kommt Jetzt würde ich gerne (nachdem das erste Makro durchgelaufen ist und die 20 Zeilen kopiert hat) die Information aus dem Reiter(Tabelle2)A1:S21 kopieren und in Tabelle1 ab U5 einfügen. Der Bereich aus Tabelle2 soll so lange in Tabelle 1 (untereinander) eingefügt werden bis in Spalte 20 keine Eintragung mehr vorhanden ist. Kann das jemand nachvollziehen ^^ Beste Grüße
Hi, mit Anhang ist es sehr wahrscheinlich besser =)
Der Code hinter dem CommandButton in Tabelle1 sorgt dafür dass eine Zeile 20 mal kopiert und untereinander eingefügt wird, wenn in Spalte T ein neuer Name steht. Wenn das durchlaufen ist hätte ich nun gerne als anschließende Aktion das der gelb markierte Bereich aus Tabelle2 A1:S21 in Tabelle 1 ab U5 kopiert wird. Der Bereich soll als Schleife immer wieder kopiert werden (siehe angehängtes Bild), bis in Spalte T kein Eintrag mehr steht.
das Kopieren sollte doch kein Problem sein? Im Prinzip Range("A1:S21).Copy Range("U5").Paste Natürlich ggf. noch mit den Blattnamen davor.
Dann machst Du einfach weiter mit einer Schleife, die alle 20 Zeilen prüft, ob in S was steht. Musst ja nicht jede Zeile prüfen, wenn Du immer die Daten von A1:A21 einfügst. Allerdings passen die Daten doch nicht ganz zueinander. Beim Ziel nimmst Du 20 Zeilen, bei der Quelle 21. Soll da die 21. Zeile überschrieben werden? Also, im Prinzip nach den obigen beiden Zeilen dann so: iCnt=20 Do While Cells(iCnt,"S").Value <> "" Cells(icnt+5,"U").Paste iCnt=iCnt+20 Loop
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
08.06.2018, 07:44 (Dieser Beitrag wurde zuletzt bearbeitet: 08.06.2018, 07:44 von RPP63.)
Moin André! Die .Paste-Methode funktioniert nur bei einem aktivierten Sheet-Objekt! (Das weißt Du natürlich, aber ich wollte Deinen Flüchtigkeitsfehler nicht unkommentiert lassen)