Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Letzte Zeile einer geschlossen Datei kopieren

Forumthread: Letzte Zeile einer geschlossen Datei kopieren

Letzte Zeile einer geschlossen Datei kopieren
12.07.2019 21:56:43
Andreas
Hallo liebe Excel Freunde,
Ist es möglich mit VBA die letzte benutze Zeile Spalte A bis H aus einer geschlossen Datei Quelle.xlms Tabellenblatt Datenbank auf Laufwerk D:\ auszulesen und zu kopieren um sie Dann in die erste freie Zeile der Datei Ziel.xlms Tabellenblatt Auswertung Spalte A bis H auf Laufwerk C:\ einzufügen?
Meine VBA Kenntnisse reichen hierfür leider nicht aus. Vielen Dank für eure Hilfe.
Gruß, Andreas
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Letzte Zeile einer geschlossen Datei kopieren
12.07.2019 22:19:45
Daniel
Hi
bei geschlossenen Dateien ist das nicht möglich.
es spricht aber nichts dagegen, die Datei mit VBA zu öffnen (im Bedarffall schreibgeschützt) und dann die Werte zu kopieren.
Gruß Daniel
AW: Letzte Zeile einer geschlossen Datei kopieren
12.07.2019 22:23:46
Andreas
Ok, das wäre mir auch recht macht das Script dann eben noch etwas länger.
Gruß Andreas
Anzeige
AW: Letzte Zeile einer geschlossen Datei kopieren
12.07.2019 22:46:28
Daniel
ist jetzt nicht so schwer
im Prinzip so, du müsstest halt noch alle Pfad-, Datei- und Tabellenblattnamen korrekt einfügen.
Workbooks.Open "Vollständiger Pfad und Dateiname", ReadOnly:=True
AciveWorkbook.Sheets("Tabellenblattname").Cells(Rows.Count, 1).end(xlup).Resize(1, 8).Copy
ThisWorkbook.Sheets("Tabellenblattname").Cells(Rows.count,1).end(xlup).Offset(1, 0). _
PasteSpecial xlpastevaluesandNumberformat
ActiveWorkbook.Close False

Gruß Daniel
Anzeige
AW: Letzte Zeile einer geschlossen Datei kopieren
12.07.2019 22:55:43
Andreas
Danke erst mal, da werde ich versuchen mir etwas daraus zu basteln.
Gruß, Andreas
AW: Letzte Zeile einer geschlossen Datei kopieren
12.07.2019 23:09:38
Andreas
Die Zeile:
AciveWorkbook.Sheets("Datenbank").Cells(Rows.Count, 1).End(xlUp).Resize(1, 8).Copy
Bringt leider den Laufzeitfehler 424 Opjekt erforderlich.
LG Andreas
AW: Letzte Zeile einer geschlossen Datei kopieren
12.07.2019 23:13:10
Daniel
da hab ich mich beim ersten Wort vertippt: "ActiveWorkbook"
Anzeige
AW: Letzte Zeile einer geschlossen Datei kopieren
12.07.2019 23:30:16
Andreas
Jetzt erwartet er noch ein Anweisungsende. Er markiert mir xlpastevaluesandNumberformat das wäre hoffentlich der letzte Fehler. Danke für deine Mühe
End Sub
12.07.2019 23:59:58
Matthias
als letzte CodeZeile
AW: End Sub
13.07.2019 00:08:14
Andreas
Hallo, hier mal der gesamte code:
Private Sub CommandButton1_Click()
Workbooks.Open "D:\Quelle.xlsm", ReadOnly:=False 'True
ActiveWorkbook.Sheets("Datenbank").Cells(Rows.Count, 1).End(xlUp).Resize(1, 8).Copy
ThisWorkbook.Sheets("Auswertung").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Paste Special  _
xlpastevaluesandNumberformat
ActiveWorkbook.Close False
End Sub

Excel markiert mir xlpastevaluesandNumberformat in rot und sagt Syntaxfehler oder auch Anweisungsende erwartet. Gruß andreas
Anzeige
AW: End Sub
13.07.2019 00:20:49
Matthias
Probier dies:
ThisWorkbook.Sheets("Auswertung").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats

AW: End Sub
13.07.2019 00:23:44
Andreas
Super Klasse Danke jetzt läuft es. Gruß Andreas
AW: Letzte Zeile einer geschlossen Datei kopieren
12.07.2019 22:27:04
Andreas
Hättest du einen Script Vorschlag?
LG Andreas
Anzeige
;
Anzeige

Infobox / Tutorial

Letzte Zeile einer geschlossenen Excel-Datei kopieren


Schritt-für-Schritt-Anleitung

Um die letzte Zeile einer geschlossenen Excel-Datei (z.B. Quelle.xlsm) zu kopieren und in eine andere Datei (z.B. Ziel.xlsm) einzufügen, kannst Du den folgenden VBA-Code verwenden. Achte darauf, die Pfade und Namen der Dateien sowie der Tabellenblätter anzupassen:

Private Sub CommandButton1_Click()
    ' Öffne die Quell-Datei im Lesezugriff
    Workbooks.Open "D:\Quelle.xlsm", ReadOnly:=True 
    ' Kopiere die letzte Zeile von Spalte A bis H
    ActiveWorkbook.Sheets("Datenbank").Cells(Rows.Count, 1).End(xlUp).Resize(1, 8).Copy
    ' Füge die kopierten Werte in die Ziel-Datei ein
    ThisWorkbook.Sheets("Auswertung").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
    ' Schließe die Quell-Datei ohne zu speichern
    ActiveWorkbook.Close False
End Sub

Führe diesen Code aus, nachdem Du einen Button in Deinem Excel-Dokument erstellt hast. So kannst Du den Prozess einfach starten.


Häufige Fehler und Lösungen

  1. Fehler: Laufzeitfehler 424: Objekt erforderlich

    • Lösung: Überprüfe, ob Du ActiveWorkbook korrekt geschrieben hast. Es sollte ActiveWorkbook und nicht AciveWorkbook sein.
  2. Fehler: Syntaxfehler oder Anweisungsende erwartet

    • Lösung: Achte darauf, dass PasteSpecial korrekt geschrieben wird. Hier ist ein Beispiel:
      ThisWorkbook.Sheets("Auswertung").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
  3. Fehler: Anweisungsende erwartet bei xlPasteValuesAndNumberFormats

    • Lösung: Stelle sicher, dass Du xlPasteValuesAndNumberFormats korrekt schreibst (mit Großbuchstaben) und dass es sich nicht im falschen Kontext befindet.

Alternative Methoden

Falls Du kein VBA verwenden möchtest, gibt es auch alternative Methoden, um Daten aus geschlossenen Excel-Dateien zu importieren. Eine Möglichkeit ist die Nutzung von Power Query:

  1. Power Query verwenden:
    • Gehe zu Daten > Daten abrufen > Aus Datei > Aus Arbeitsmappe.
    • Wähle die Datei aus und lade die gewünschten Daten.
    • Du kannst die Daten dann in Deine Arbeitsmappe importieren und nach Bedarf bearbeiten.

Praktische Beispiele

Hier ist ein weiteres Beispiel, das zeigt, wie Du die letzte Zeile einer geschlossenen Datei kopieren und in eine andere Tabelle einfügen kannst:

Sub KopiereLetzteZeile()
    Workbooks.Open "D:\Quelle.xlsm", ReadOnly:=True
    Dim letzteZeile As Long
    letzteZeile = ActiveWorkbook.Sheets("Datenbank").Cells(Rows.Count, 1).End(xlUp).Row
    ActiveWorkbook.Sheets("Datenbank").Rows(letzteZeile).Copy
    ThisWorkbook.Sheets("Auswertung").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
    ActiveWorkbook.Close False
End Sub

In diesem Beispiel wird die gesamte letzte Zeile kopiert, was nützlich ist, wenn Du mehr als nur die ersten 8 Spalten benötigst.


Tipps für Profis

  • VBA-Debugging: Nutze den VBA-Debugger, um Fehler schnell zu finden. Klicke auf die Zeile, die Du überprüfen möchtest, und drücke F8, um den Code Schritt für Schritt auszuführen.
  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung in Deinem Code, um sicherzustellen, dass das Skript nicht bei einem Fehler stoppt:
    On Error Resume Next
    ' Dein Code hier
    On Error GoTo 0

FAQ: Häufige Fragen

1. Kann ich VBA auch für andere Excel-Dateiformate verwenden? Ja, VBA kann auch für .xls, .csv und andere Formate verwendet werden. Achte darauf, den richtigen Dateipfad anzugeben.

2. Muss ich Excel als Administrator ausführen, um VBA zu verwenden? In der Regel nicht, es sei denn, Du hast spezielle Berechtigungen, die erforderlich sind, um auf bestimmte Dateien oder Ordner zuzugreifen.

3. Wie kann ich den Code anpassen, um mehrere Zeilen zu kopieren? Du kannst die Resize-Methode anpassen, um mehrere Zeilen zu kopieren. Zum Beispiel Resize(5, 8) kopiert die letzten 5 Zeilen.

4. Sind Makros in Excel standardmäßig aktiviert? Nein, Du musst die Makroeinstellungen unter Datei > Optionen > Trust Center > Einstellungen für das Trust Center anpassen, um Makros auszuführen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige