Registriert seit: 30.12.2024
Version(en): 365
Hallo zusammen,
bis jetzt nutze ich einen VBA Code um Werte aus einer Datei an einer bestimmten Stelle in einer anderen Arbeitsmappe einzufügen.
Nun möchte ich aber die Werte in dwer nächsten freien Zeile einfügen. Was muss an meinem Code geändert werden?
Code:
Sub NVReporteholen()
'
' NVReporteholen Makro
' NV Werte aus der Reportdatei holen
'
'
Workbooks.Open Filename:= _
"F:\Daten\Partner\Daten\2025\Reporte.xlsb"
Sheets("RP_DD").Select
Range("V5:AA52").Select
Selection.Copy
Windows("Vergleich 2025.xlsb").Activate
Sheets("Report 55").Select
Range("B2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("L23").Select
Windows("Reporte.xlsb").Activate
Range("R56").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
ActiveWindow.Close
Range("L26").Select
End Sub
Danke für eure tatkräftige Unterstützung.
Registriert seit: 27.04.2014
Version(en): Privat: Office Home & Business 2024 / Arbeit: MS365
Hi,
so:
Code:
Sub NVReporteholen()
'
' NVReporteholen Makro
' NV Werte aus der Reportdatei holen
'
'
Workbooks.Open Filename:= _
"F:\Daten\Partner\Daten\2025\Reporte.xlsb"
Sheets("RP_DD").Select
Range("V5:AA52").Select
Selection.Copy
Windows("Vergleich 2025.xlsb").Activate
Sheets("Report 55").Select
Range("B" & Cells(Rows.Count, 2).End(xlUp).Row + 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("L23").Select
Windows("Reporte.xlsb").Activate
Range("R56").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
ActiveWindow.Close
Range("L26").Select
End Sub
BR, Alexandra
Registriert seit: 05.09.2019
Version(en): Office 365
Hallo
Welche Datei ist die Quelle und Welche die Zieldatei?
LG UweD
Registriert seit: 30.12.2024
Version(en): 365
Hi Uwe,
die Quelle ist "Reporte" und die Zieldatei ist "Vergleich 2025".
Ich habe da etwas falsch ausgedrückt.
Die Daten sollen in Spalte C ab der ersten freien Zelle eingefügt werden.
Gruß Ole
Registriert seit: 27.04.2014
Version(en): Privat: Office Home & Business 2024 / Arbeit: MS365
...dann so:
Code:
Sub NVReporteholen()
'
' NVReporteholen Makro
' NV Werte aus der Reportdatei holen
'
'
Workbooks.Open Filename:= _
"F:\Daten\Partner\Daten\2025\Reporte.xlsb"
Sheets("RP_DD").Select
Range("V5:AA52").Select
Selection.Copy
Windows("Vergleich 2025.xlsb").Activate
Sheets("Report 55").Select
Range("B" & Cells(Rows.Count, 3).End(xlUp).Row + 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("L23").Select
Windows("Reporte.xlsb").Activate
Range("R56").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
ActiveWindow.Close
Range("L26").Select
End Sub
LG, Alexandra
Registriert seit: 12.03.2016
Version(en): Excel 2003/ 2016
Hallo
so sollte es Ohne umständliche Sheets().Selects gehen. Noch kürzer ist der 2. Code, Ohne Activate!
mfg Gast 123
Code:
Sub NVReporteholen()
Workbooks.Open Filename:= _
"F:\Daten\Partner\Daten\2025\Reporte.xlsb"
'Quelldaten kopieren
Sheets("RP_DD").Range("V5:AA52").Copy
Windows("Vergleich 2025.xlsb").Activate
'in Zielsheet einfügen Ohne Sheet Select
Sheets("Report 55").Range("B2").PasteSpecial Paste:=xlPasteValues, Transpose:=False
Workbooks("Reporte.xlsb").Close savechanges:=False
Application.CutCopyMode = False
End Sub
Code:
Sub NVReporteholen()
Workbooks.Open Filename:= _
"F:\Daten\Partner\Daten\2025\Reporte.xlsb"
'Quelldaten kopieren
Sheets("RP_DD").Range("V5:AA52").Copy
'in Zielsheet einfügen Ohne Activate !!
Workbooks("Vergleich 2025.xlsb").Sheets("Report 55") _
.Range("B2").PasteSpecial Paste:=xlPasteValues
Workbooks("Reporte.xlsb").Close savechanges:=False
Application.CutCopyMode = False
End Sub
Registriert seit: 05.09.2019
Version(en): Office 365
Hallo nochmal
Ich gehe davon aus, das das Makro in der Zieldatei liegt..
Ohne Select, Activate und copy /paste
Code:
Sub NVReporteholen()
Dim Datei As String, LR As Long
Dim WBQ As Workbook, RNGQ As Range
Dim TBZ As Worksheet, RNGZ As Range
'Quelldatei
Datei = "F:\Daten\Partner\Daten\2025\Reporte.xlsb"
'Zielblatt
Set TBZ = ThisWorkbook.Sheets("Report 55")
LR = TBZ.Cells.SpecialCells(xlCellTypeLastCell).Row 'Letzte Zeile des gesamten Blattes
Set RNGZ = TBZ.Cells(LR + 1, 2) 'Zielzelle
'Quelle öffnen
Workbooks.Open Filename:=Datei
Set WBQ = ActiveWorkbook
Set RNGQ = WBQ.Sheets("RP_DD").Range("V5:AA52")
'Übertrage Werte aus QuellBereich zu Ziel
RNGZ.Resize(RNGQ.Rows.Count, RNGQ.Columns.Count).Value = RNGQ.Value
WBQ.Close False 'schließen ohne speichern
End Sub
LG UweD
Registriert seit: 30.12.2024
Version(en): 365
Hi Alexandra,
leider kommt die Fehlermeldung
"Objekt erforderlich" bei der Code-Zeile:
Range("B" & Cells(Row.Count, 3).End(xlUp).Row + 1).Select
:(
Gruß Ole
Registriert seit: 12.03.2016
Version(en): Excel 2003/ 2016
06.05.2025, 17:32
(Dieser Beitrag wurde zuletzt bearbeitet: 06.05.2025, 17:34 von Gast 123.)
Nachtrag Pardon, da war ich zu voreilig, habe übersehen das nach Lastzell zum anfügen gesucht wird.
Dafür ist der Code von Alexandra schon richtig, Hut ab. Das könnte evtl. noch verbessert werden.
Sheets("RP_DD").Range("V5:AA52").Copy
Korrektur Cells(Row.Count, 3). mach bitte aus der 3 eine 2. Index 3 ist die Spalte C, nicht B!
Registriert seit: 27.04.2014
Version(en): Privat: Office Home & Business 2024 / Arbeit: MS365
Hallo Ole,
das heißt nicht row.count sondern rows.count. ;)
LG, Alexandra