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