Ich benötige bitte ein Makro welches die letzten 10 Zeilen von Spalte A in ein anderes Arbeitsblatt in Zeile A schreibt (zb. A1:A10)
Danke
Manuel
Sub Last10Copy()
Const SpalteQuelle As Long = 1 '1 wie Spalte A
Const BlattQuelle As String = "Tabelle1"
Const BlattZiel As String = "Tabelle2"
Const xCopy As Integer = 10 'letzte x Zeilen kopieren
Dim lRow As Long
On Error GoTo hell 'falls es keine 10 Zeilen gibt
With Sheets(BlattQuelle)
lRow = .Cells(.Rows.Count, SpalteQuelle).End(xlUp).Row
.Cells(lRow - xCopy + 1, SpalteQuelle).Resize(xCopy, 1).Copy
End With
Sheets(BlattZiel).Range("A1").PasteSpecial
GoTo heaven
hell:
MsgBox ("Das war nichts!")
heaven:
Application.CutCopyMode = False
End Sub
LG,Um die letzten 10 Zeilen einer bestimmten Spalte (z.B. Spalte A) in ein anderes Arbeitsblatt zu kopieren, kannst du ein VBA-Makro verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu öffnen.
Klicke auf Einfügen
und wähle Modul
, um ein neues Modul zu erstellen.
Kopiere den folgenden Code in das Modul:
Sub Last10Copy()
Const SpalteQuelle As Long = 1 ' 1 wie Spalte A
Const BlattQuelle As String = "Tabelle1"
Const BlattZiel As String = "Tabelle2"
Const xCopy As Integer = 10 ' letzte x Zeilen kopieren
Dim lRow As Long
On Error GoTo hell ' falls es keine 10 Zeilen gibt
With Sheets(BlattQuelle)
lRow = .Cells(.Rows.Count, SpalteQuelle).End(xlUp).Row
.Cells(lRow - xCopy + 1, SpalteQuelle).Resize(xCopy, 1).Copy
End With
Sheets(BlattZiel).Range("A1").PasteSpecial
GoTo heaven
hell:
MsgBox ("Das war nichts!")
heaven:
Application.CutCopyMode = False
End Sub
Passe die Namen von BlattQuelle
und BlattZiel
entsprechend deiner Arbeitsblätter an.
Drücke F5
, um das Makro auszuführen.
Dieses Makro kopiert die letzten 10 Zeilen von Spalte A aus "Tabelle1" in "Tabelle2".
Fehler: "Das war nichts!"
Fehler: "Objekt nicht gefunden"
Wenn du kein VBA verwenden möchtest, kannst du auch eine Formel nutzen, um die letzten 10 Werte einer Spalte zu extrahieren. Hier ist eine Formel, die du verwenden kannst:
=INDEX(A:A;AGGREGAT(14;6;ZEILE(A$1:A$9999)/(A$1:A$9999<>"");ZEILE(A1)))
Diese Formel listet die letzten 10 Werte in Spalte A auf. Kopiere die Formel in die ersten 10 Zellen in einer anderen Spalte, um die letzten 10 Datenwerte anzuzeigen.
Angenommen, in "Tabelle1" hast du folgende Werte in Spalte A:
1
2
3
4
5
6
7
8
9
10
11
Wenn du das VBA-Makro ausführst, werden in "Tabelle2" die Werte 2 bis 11 in den Zellen A1 bis A10 kopiert. Bei der Formellösung würdest du ebenfalls die letzten 10 Werte erhalten, egal ob Leerzellen zwischen den Werten sind oder nicht.
Application.CutCopyMode = False
-Zeile am Ende des Makros, um den Kopiermodus zu beenden und das Clipboard zu leeren.1. Kann ich das Makro anpassen, um mehr oder weniger als 10 Zeilen zu kopieren?
Ja, ändere einfach den Wert von Const xCopy As Integer = 10
auf die gewünschte Anzahl.
2. Funktioniert das auch in Excel Online?
Das VBA-Makro funktioniert nur in der Desktop-Version von Excel. In Excel Online musst du eine Formellösung verwenden.
3. Was passiert, wenn die Spalte Leerzellen enthält?
Das VBA-Makro kopiert die letzten 10 Zeilen, unabhängig davon, ob Leerzellen vorhanden sind, während die Formel nur die letzten 10 nicht-leeren Werte auflistet.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen