Clever-Excel-Forum

Normale Version: Letze Zeile finden und dort etwas hinein kopieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo!
Ich möchte gerne per VBA die letzte Zeile in meiner Tabelle finden. In diese sollen vorbestimmte Werte kopiert werden.
Soweit bin ich gekommen:

ub Testmakro()
'
' Testmakro Makro
'
    Range("A3: P14").Select
    Selection.Copy
    letztezeile = Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
    ActiveSheet.Range(letztezeile).Select
    ActiveSheet.Paste

End Sub

Das Problem liegt denke ich in der markierten Zeile. Wie spreche ich die letzte Zeile richtig an, um dort die Daten von A3: P14 hineinzukopieren?

Danke!
Hallo,
Wenn die Spalte bekannt ist, wird häufig
LR = cells(rows.count, Spalte).end(xlup).row + 1
verwendet. + 1 ergibt erste freie Zeile, Spalte muss zuerst definiert werden, z.b. "A" oder 1.
Wenn die Tabelle in A1 beginnt, funtioniert auch
LR = range("a1").currentRegion.rows.count +1
Angesprochen wird die erste frei Zeile mit cells(LR, Spalte)

Mfg
Mein Code sieht nun folgendermaßen aus:

Sub Testmakro()
'
' Testmakro Makro
'
'
    Range("A3: P14").Select
    Selection.Copy
    letztezeile = Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
    Cells(letztezeile, A).Select
    ActiveSheet.Paste

End Sub

Das führt zu einem Laufzeitfehler 1004, Anwendungs oder objektdefinierter Fehler....
Hallo,

Du solltest Dich mal mit VBA und der zugehörigen Syntax befassen:

Cells(Zeilennummer, Spaltennummer)!!!!

Wenn Option Explicit einsetzt, dann wird einem das auch angezeigt!
Hallo Heinz,

in der Cells Schreibweise ist es so, wie Edgar schreibt.
Man kann aber auch da Spaltenbuchstaben verwenden, so wie Du es versuchst.
Der Buchstabe muss dann aber von Anführungszeichen umrandet sein:

Cells(letztezeile, "A").Select

Noch ein Hinweis zu UsedRange
UsedRaneg ist der zuletzt gespeicherte benutzte Bereich.
Diese ändert sich bis zum erneuten speichern nicht.
Das heißt, Dein Code würde dann bis dahin immer die gleiche letzte Zeile finden.

Also wenn Du nicht zwischenspeicherst und den Code mehrmals nutzen möchtest,
dann könnte die erste freie Zeile so bestimmte werden:

Cells(Rows.Count, 1).End(xlUp).Row

wobei hier die Zahl 1 angibt in welcher Spalte diese Zelle gesucht wird.
Vielen Dank euch!
Funktioniert alles.
Excel-VBA-Buch ist schon bestellt, das Anliegen war aber recht dringend.