Registriert seit: 07.01.2016
Version(en): 2010
19.01.2016, 11:50
(Dieser Beitrag wurde zuletzt bearbeitet: 19.01.2016, 11:50 von Heinz.)
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!
Registriert seit: 06.12.2015
Version(en): 2016
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
Registriert seit: 07.01.2016
Version(en): 2010
19.01.2016, 12:15
(Dieser Beitrag wurde zuletzt bearbeitet: 19.01.2016, 12:16 von Heinz.)
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....
Registriert seit: 13.04.2014
Version(en): 365
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!
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Registriert seit: 14.04.2014
Version(en): 2003, 2007
19.01.2016, 12:45
(Dieser Beitrag wurde zuletzt bearbeitet: 19.01.2016, 13:11 von atilla.)
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.
Gruß Atilla
Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:1 Nutzer sagt Danke an atilla für diesen Beitrag 28
• Heinz
Registriert seit: 07.01.2016
Version(en): 2010
Vielen Dank euch!
Funktioniert alles.
Excel-VBA-Buch ist schon bestellt, das Anliegen war aber recht dringend.