Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Werte in nächste freie Zeile schreiben

Werte in nächste freie Zeile schreiben
Nopummel
Hallo zusammen,
ich möchte Daten aus einer Datei in eine andere kopieren, dabei sollen die Werte in die nächste freie Zeile geschrieben werden. Das Problem dabei ist, dass ich die Daten aus verschiedenen genau gleich aufgebauten Dateien rasukopieren will. D.h Aus Datei A kopiere ich 5 Zeilen, aus Datei B 5 Zeilen etc. Die Datei aus der die Werte kommen bildet eine Kosten-Nutzen Betrachtung ab, nun möchte ich nur ganz bestimmte Zahlen daraus übernehmen, was denke ich nicht das Problem ist da ich das ja definieren kann. Mein Hauptproblem ist, dass die Werte in die nächste freie Zeile geschrieben werden sollen.
Anbei eine Beispieldatei, die Tabellenblätter sind allerdings normal in 2 verschiedenen Dateien.
https://www.herber.de/bbs/user/64425.xls
Vielen Dank vorab für eure Hilfe!
Viele Grüße Sebastian
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
komme nicht weiter
15.09.2009 11:21:52
Nopummel
Hallo,
ich habe mit jetzt mal was zusammengesucht, das funktioniert auch ganz gut wenn ich es in einer Arbeitsmappe mache, aber Dateiübergreifend klappt es nicht.
Hier mein Code:
Sub Schaltfläche1_BeiKlick()
Dim lRow As Long
datei = Dir(Environ("H:\Eigene Dateien\alle Projekte.xls")) 'Pfad festlegen
Set quelle = Workbooks.Open(datei) 'Datei öffnen
lRow = quelle.Tabelle1.Range("A65536").End(xlUp).Row + 1
quelle.Tabelle1.Cells(lRow, 1) = ThisWorkbook.Tabelle1.Range("A3")
quelle.Tabelle1.Cells(lRow, 2) = ThisWorkbook.Tabelle1.Range("B3")
quelle.Tabelle1.Cells(lRow, 3) = ThisWorkbook.Tabelle1.Range("C3")
End Sub
Wenn ich das Makro ausführe erhalte ich folgende Fehlermeldung:
Laufzeitfehler '434'
Objekt ünterstützt die Eigenscht oder Methode nicht
Vielen Dank für eure Hilfe.
Sebastian
Anzeige
Das 'ThisWorkbook.Tabelle1.Range("A3")'...
15.09.2009 11:45:43
Luc:-?
...kann nur in der Mappe fkt, in der auch das Pgm steht, Sebastian...!
Mit ein bisschen Englisch-Kenntnissen müsste das doch auch zu verstehen sein — ThisWorkbook — deutlicher geht's doch nicht!
Immer wieder wird dieser dämliche VBAnfängerfehler kolportiert, da kann man noch so oft schreiben, dass das nicht synonym zu ActiveWorkbook ist... :-(
Gruß Luc :-?
Anzeige
läuft
15.09.2009 14:17:36
Nopummel
Es geht jetzt. Der Befehl Environ war einfach faslch!

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Werte in die nächste freie Zeile schreiben


Schritt-für-Schritt-Anleitung

Um Werte in die nächste freie Zeile in Excel zu schreiben, kannst du das folgende VBA-Makro verwenden. Dieses Beispiel geht davon aus, dass du Daten aus einer Arbeitsmappe in eine andere kopieren möchtest.

  1. Öffne die Excel-Datei, in die du die Daten einfügen möchtest.

  2. Gehe zu Entwicklertools > Visual Basic, um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu und kopiere den folgenden Code:

    Sub WerteInNaechsteFreieZeile()
       Dim ziel As Workbook
       Dim quelle As Workbook
       Dim lRow As Long
    
       ' Zielarbeitsmappe festlegen
       Set ziel = ThisWorkbook
       ' Quellarbeitsmappe festlegen
       Set quelle = Workbooks.Open("Pfad\zur\deiner\Datei.xls")
    
       ' Nächste freie Zeile ermitteln
       lRow = ziel.Sheets(1).Cells(ziel.Sheets(1).Rows.Count, 1).End(xlUp).Row + 1
    
       ' Werte kopieren
       ziel.Sheets(1).Cells(lRow, 1).Value = quelle.Sheets(1).Cells(1, 1).Value
    
       ' Quellarbeitsmappe schließen
       quelle.Close SaveChanges:=False
    End Sub
  4. Ändere den Pfad zur Quelldatei entsprechend.

  5. Führe das Makro aus, um die Werte in die nächste freie Zeile zu schreiben.


Häufige Fehler und Lösungen

  • Laufzeitfehler '434': Dieser Fehler tritt auf, wenn du versuchst, auf ein Objekt zuzugreifen, das nicht existiert. Stelle sicher, dass du die richtige Arbeitsmappe und das richtige Blatt verwendest.

  • ThisWorkbook vs. ActiveWorkbook: Achte darauf, dass ThisWorkbook die Arbeitsmappe ist, in der das Makro gespeichert ist. Wenn du auf eine andere Arbeitsmappe zugreifen möchtest, verwende Workbooks("NameDerDatei.xlsx").


Alternative Methoden

Wenn du keine VBA-Programmierung verwenden möchtest, kannst du auch die Funktion INDEX und VERGLEICH nutzen, um Werte in die nächste freie Zeile in Excel zu schreiben. Hier ist eine einfache Formel, die dir helfen kann, Werte zu suchen und in die nächste Zeile einzufügen.

  1. Verwende die Funktion VERGLEICH, um die nächste freie Zeile zu finden.
  2. Setze die Zelle mit INDEX ein, um die Werte zu kopieren.

Praktische Beispiele

Hier sind einige praktische Beispiele für das Schreiben von Werten in die nächste freie Zeile:

  • Wenn du Daten von einer Tabelle in eine andere Tabelle innerhalb derselben Arbeitsmappe verschieben möchtest, kannst du einfach die Zellen referenzieren und die nachfolgende Methode anwenden.

  • Um Werte aus verschiedenen Arbeitsmappen zu konsolidieren, kannst du das oben genannte VBA-Makro anpassen und mehrfach hintereinander aufrufen, um die Daten aus mehreren Quellen zu importieren.


Tipps für Profis

  • Verwende die Application.ScreenUpdating = False und Application.ScreenUpdating = True Befehle, um die Bildschirmaktualisierung während der Ausführung des Makros zu deaktivieren, was die Ausführungsgeschwindigkeit verbessert.

  • Setze Fehlerbehandlungen in deinem Makro ein, um unerwartete Probleme während der Ausführung zu vermeiden. Verwende dafür On Error Resume Next.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass ich keine Daten überschreibe? Verwende die Methode End(xlUp) in Kombination mit Row, um die letzte gefüllte Zeile zu ermitteln und die Daten in die nächste freie Zeile zu schreiben.

2. Kann ich mehrere Zellen gleichzeitig kopieren? Ja, du kannst mehrere Zellen kopieren, indem du eine Schleife oder Range-Objekte verwendest, um die gewünschten Daten zu übergeben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige