Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.07.2024 18:36:17
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Letzte Zeile in neues Blatt kopieren

Letzte Zeile in neues Blatt kopieren
11.09.2008 07:20:00
Matthias
Hallo zusammen,
ich habe zwar in der Suche einiges über die LETZTE ZEILE gefunden, aber mein Problem konnte ich dennoch nicht richtig lösen.
Hier, was ich habe:
- In einer Excel-Datei mehrere Tabellen, die Anzahl kann sich ändern (z.B. Tabelle1, Tabelle2, Tabelle3...Tabelle 30)
- Alle Tabellen sind gleich aufgebaut und strukturiert und bestehen aus mehreren beschriebenen Spalten (A-AP)
Was ich möchte:
- In einer weiteren, bestehenden Tabelle ("Zusammenfassung") der gleichen Excel- Datei jeweils die LETZTE ZEILE von jeder der vorhandenen anderen Tabellen kopieren und untereinander einfügen, aber nur die Spalten E...AP. Also z.B.: Letzte Zeile (E...AP) von Tabelle1 in Zeile 5 der "Zusammenfassung", Letzte Zeile von Tabelle2 (E...AP) in Zeile 6, usw.
- Die Struktur der "Zusammenfassung" ist ab Spalte B gleich, die kopierten Zeilen (E...AP) der einzelnen Tabellen sollen also dort in den Spaltenbereich B...AM hinein.
- Kopiert sollen nicht nur die Werte, sondern auch die Formate (Farben, Textformate, etc.)
Ich hoffe, dass es mit einem (einfachen?) Makro zu machen ist.
Schon mal besten Dank für die Hilfe!
Grüsse aus CH
Matthias

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

Betreff
Datum
Anwender
Anzeige
AW: Letzte Zeile in neues Blatt kopieren
11.09.2008 07:42:59
Beverly
Hi Matthias,
eine Möglichkeit:

Sub kopieren()
Dim wsTabelle As Worksheet
Dim loLetzte As Long
Dim loZeile As Long
With Worksheets("Zusammenfassung")
loZeile = IIf(IsEmpty(.Cells(.Rows.Count, 2)), .Cells(.Rows.Count, 2).End(xlUp).Row, . _
Rows.Count)
End With
For Each wsTabelle In Worksheets
With wsTabelle
If .Name  "Zusammenfassung" Then
loLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 5)), .Cells(.Rows.Count, 5).End(xlUp). _
Row, .Rows.Count)
loZeile = loZeile + 1
.Range(.Cells(loLetzte, 5), .Cells(loLetzte, 42)).Copy Worksheets("Zusammenfassung") _
.Cells(loZeile, 2)
End If
End With
Next wsTabelle
End Sub




Anzeige
AW: Letzte Zeile in neues Blatt kopieren
11.09.2008 08:56:00
Matthias
Hi Karin,
das ging ja flott...., ein ganz grosses Dankeschön!
Der Ansatz ist ganz gut, funktioniert auch prima, nur müsste ich noch ein paar Änderungen machen (lassen...):
- beim Ausführen des Makros sollen gleich alle Tabellen behandelt werden (wegen automatischem Makrostart beim Öffnen der Datei). Jetzt muss das Makro für jede Tabelle erneut ausgeführt werden.
- die Letzten Zeilen aus den Tabellen sollen immer in die gleiche Zeile für die entsprechende Tabelle kopiert werden, z.B. LETZTE ZEILE von Tabelle1 IMMER in Zeile 5 der "Zusammenfassung", LETZTE ZEILE von Tabelle2 IMMER in Zeile 6 der "Zusammenfassung", usw.
Das heisst, dass beim Kopieren die alten Daten dann überschrieben werden sollen.
LG
Matthias
Anzeige
AW: Letzte Zeile in neues Blatt kopieren
11.09.2008 10:23:08
Beverly
Hi Matthias,

Jetzt muss das Makro für jede Tabelle erneut ausgeführt werden.


Diese Aussage ist nicht richtig, denn im Code wird in einer Schleife über alle Tabellenblätter gegangen.
Wenn du den Code beim Öffnen der Arbeitsmappe asuführen willst, musst du nur noch ins Codemodul DieseArbeitsmappe diesen Code einfügen:


Private Sub Workbook_Open()
kopieren
End Sub


Und wie legst du fest, in welche Zeile kopiert werden soll?



Anzeige
AW: Letzte Zeile in neues Blatt kopieren
11.09.2008 10:56:00
Matthias
Hi Karin,

Und wie legst du fest, in welche Zeile kopiert werden soll?


- Die Tabellen-Namen haben alle fortlaufende Nummern (101,102,103...).
- Die Tabelle "Zusammenfassung" hat einen festen Kopf von 4 Zeilen, d.h. die erste "Datenzeile" aus den anderen Tabellen beginnt bei Zeile 5.
- Es soll also IMMER die Zeile von Tabelle 101 in die Zeile 5 ("Zusammenfassung"), 102 in 6, 103 in 7, 104 in 8, usw. kopiert werden.
LG
Matthias

AW: Letzte Zeile in neues Blatt kopieren
11.09.2008 11:28:00
Beverly
Hi Matthias,

Sub kopieren()
Dim wsTabelle As Worksheet
Dim loLetzte As Long
For Each wsTabelle In Worksheets
With wsTabelle
If .Name  "Zusammenfassung" Then
loLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 5)), .Cells(.Rows.Count, 5).End(xlUp). _
Row, .Rows.Count)
.Range(.Cells(loLetzte, 5), .Cells(loLetzte, 42)).Copy Worksheets("Zusammenfassung") _
.Cells(CInt(wsTabelle.Name) - 96, 2)
End If
End With
Next wsTabelle
End Sub




Anzeige
AW: Letzte Zeile in neues Blatt kopieren
11.09.2008 13:25:00
Matthias
Hi Karin,
ganz herzlichen Dank für Deine schnelle und kompetente Hilfe!!!
Jetzt funktioniert alles so, wie ich es mir vorgestellt habe - GRANDIOS !!!
Nun muss ich noch hinter die verschiedenen "Geheimnisse" kommen, die im Code stecken und das Ganze zum Funktionieren bringen...
Nochmals vielen lieben Dank, Karin!
Matthias

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige