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

Zeilen Kopieren und am Ende einfügen

Zeilen Kopieren und am Ende einfügen
07.11.2020 07:49:52
Tobias
Hallo Zusammen,
in diesem Forum wurde die Sache schon oft gefragt aber leider funktionieren die Skripte leider nicht bei mir.
Ich benötige folgende Funktion:
Ich möchte die Zeilen 5 bis 16 kopieren und diese an das Ende der Tabelle einfügen.
Soweit so gut aber es kommt noch was dazu.
Die Nummerierung in der ersten Spalte sollte sich automatisch fortsetzen.
Des Weiteren ist die Anzahl der Kopien abhängig von dem Tabellenblatt "CSV Import".
Es sollen genau so viele Kopien erstellt werden wie importierte Zeilen im "CSV Import" vorhanden sind.
Ich hoffe jemand kann mir helfen.
MFG Tobias

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen Kopieren und am Ende einfügen
07.11.2020 08:04:02
Hajo_Zi
Hallo Tobias,
zu Spalte A =Zeile()
Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.Ich baue keine Datei nach.
Sollte die Datei verlinkt werden?
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
http://www.ms-office-forum.de/forum/showthread.php?t=322895
ändern.
Bilder lade ich mir nicht runter, da Excel damit nichts anfangen kann.
http://www.excel-ist-sexy.de/bilder-statt-datei/
Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.
Das ist nur meine Meinung zu dem Thema.
http://www.excel-ist-sexy.de/bilder-statt-datei/
Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.
Das ist nur meine Meinung zu dem Thema.

Anzeige
AW: Zeilen Kopieren und am Ende einfügen
07.11.2020 08:53:23
Hajo_Zi
Es soll aus Tabelle "Materiallist" Zeile 1:55 Kopiert werden in Tabelle "Materialliste" Zeile 17 wie oft keine Ahnung.

Materialliste
 A
172
18
19
20
21
22
23
24
25
26
27
28

 verbundene Zellen 
A17:A28

verwendete Formeln
Zelle Formel Bereich N/A
A17=MAX($A$1:A16)+1  


Gruß Hajo
Anzeige
AW: Zeilen Kopieren und am Ende einfügen
07.11.2020 10:08:00
Tobias
Hallo Hajo,
eigentlich wollte ich versuchen ein Makro anzulegen mit dem ich in "Materialliste" die Zeilen 5:16 kopieren kann und diese Kopie sollte an das Ende der Tabelle gesetzt werden.
Die Anzahl der Kopie sollte von "CSV Import" kommen und zwar sollen genau so viele Kopien erstellt werden wie Zeilen in der CSV erstellt sind.
Gruß Tobi
AW: Zeilen Kopieren und am Ende einfügen
07.11.2020 10:24:49
Hajo_Zi
Hallo Tobi,
spalte A siehe ersten Beiotrag.
Sub Kopie()
Dim Loletzte As Long
Dim LoI As Long
Loletzte = Worksheets("CSV Import").UsedRange.SpecialCells(xlCellTypeLastCell).Row - 1
For LoI = 1 To Loletzte
Worksheets("Materialliste").Rows("5:16").Copy Worksheets("Materialliste").Range("A" & 5  _
+ LoI * 12)
Next LoI
End Sub
Gruß Hajo
Anzeige
AW: Zeilen Kopieren und am Ende einfügen
07.11.2020 10:18:57
Toni
Hi Tobi,
probier diese Formel für A5:
=REST(ZEILE();12)-4+RUNDEN(ZEILE()/12;0)
und baue sie entsprechend in die anderen Formeln im Bereich B5:U16 ein.
Deinen Code passt Du so an:
Sub zeilenkop()
Dim wkb As Workbook
Dim wks1 As Worksheet, wks2 As Worksheet
Dim lngAnzRow As Long, lngI As Long, rng As Range
Application.ScreenUpdating = False
Set wkb = ThisWorkbook
Set wks1 = wkb.Worksheets("Materialliste")
Set wks2 = wkb.Worksheets("CSV Import")
wks1.Unprotect ("ppw")
wks1.UsedRange.Rows.Hidden = False
lngAnzRow = wks2.UsedRange.Rows.Count - 2
For lngI = 5 + 12 To lngAnzRow * 12 + 5 Step 12
Set rng = wks1.Range("A" & lngI - 12).Resize(12, 21)
rng.Copy rng.Offset(12)
Next lngI
wks1.Rows("5:16").Hidden = True
wks1.Protect ("ppw")
Application.ScreenUpdating = True
End Sub
Viel Erfolg
Toni
Anzeige
AW: Zeilen Kopieren und am Ende einfügen
07.11.2020 10:47:06
Tobias
Hallo Toni,
Danke für die Hilfe!
Nur zum Verständnis damit ich die Sache auch kapiere.
Was wird mit dem Befehl "=REST(ZEILE();12)-4+RUNDEN(ZEILE()/12;0)" ausgeführt, welche Funktion hat das Skript genau?
Entschuldigung für die Frage aber ich möchte dies Sache nicht nur anwenden sondern auch verstehen.
MFG
Tobias
AW: Zeilen Kopieren und am Ende einfügen
07.11.2020 10:58:21
Toni
Hi,
das ist kein Befehl sondern eine Formel, die Du direkt ins Tabellenblatt einträgst. Wenn Du dann einfach einmal A5:A17 nach A17 kopierst, siehst Du was diese Formel ermittelt. Und diesen Datensatz-Zähler kannst Du dann in die anderen Formeln (index()) rechts davon einbauen.
Der Code kopiert A5:U16 so oft, wie Datensätze im Reiter CSV-Import stehen.
Grüße
Anzeige
AW: Zeilen Kopieren und am Ende einfügen
07.11.2020 11:19:56
Tobias
Hallo Toni,
jetzt hab ich´s!
Danke!
Nur noch eine Frage.
Wie kann ich das Makro einstellen damit es mir die Zellen mit der gleichen Formatierung kopiert (Zeilenhöhe ect.).
Gruß Tobias
AW: Zeilen Kopieren und am Ende einfügen
07.11.2020 12:44:44
Toni
hi Tobi,
vor das next einfügen:
rng.Offset(12).RowHeight = 7.5
Schönes WE
Toni
AW: Zeilen Kopieren und am Ende einfügen
08.11.2020 13:17:39
Tobias
Hallo Toni,
Dein Makro funktioniert gut.
Allerdings wird nach dem ausführen des Makros die Position 1 bzw. die Zeilen 5 bis 16 nicht mehr angezeigt, ich befürchte diese werden dann nach dem Kopieren gelöscht.
Ich wollte mit den Makrobefehl mit Strg+z wieder Rückgängig machen leider funktioniert das leider nicht. Kann man Makrobefehle auf diese Weise nicht wiederufen oder benötigt man dafür ein Makro?
https://www.herber.de/bbs/user/141403.xlsm
MFG Tobi
Anzeige
AW: Zeilen Kopieren und am Ende einfügen
08.11.2020 13:54:14
Toni
hi tobi,
nein wird nicht gelöscht, nur Zeilen ausgeblendet, so wie es Dein Ausgangsmakro getan hat. Ich dachte, Du wirst Dir schon was bei gedacht haben ;)
Makros kannst Du nicht rückgängig machen.
Grüße
AW: Zeilen Kopieren und am Ende einfügen
08.11.2020 14:07:33
Toni
Hi Tobi,
würde Dir raten, diese Zeile:
lngAnzRow = wks2.UsedRange.Rows.Count - 2

mit der hier zu ersetzen:
lngAnzRow = wks2.Cells(Rows.Count, 5).End(xlUp).Row - 2

Und wenn Du halt die ersten Zeilen einblenden willst, löscht Du das:

wks1.Rows("5:16").Hidden = True

Schönen Sonntag noch
Anzeige
AW: Zeilen Kopieren und am Ende einfügen
08.11.2020 18:41:15
Tobias
Hallo Toni,
kann das sein, dass in dem Makro noch ein Zellschutz besteht?
Ich kann irgendwie die Zeilen nicht löschen.
Gruß Tobias

334 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige