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

Forumthread: Zeile kopieren wenn Wert nicht enthalten ist

Zeile kopieren wenn Wert nicht enthalten ist
Bastian
Hallo zusammen,
ich hoffe mal wieder auf eure Hilfe, da ich mich momentan etwas im Kreis drehe.
Ich habe 2 Exceldateien. Eine wird regelmässig neu erstellt und wird stets in die andere Datei reinkopiert (die dann quasi alle zuvor neu erstellten Dateien auf einen Blick darstellt).
Vom Aufbau sind beide Dateien identisch.
Was ich möchte ist folgendes:
Das ganze soll per VBA automatisiert werden und bei jeder Zeile soll geprüft werden, ob ein Wert in Spalte O schon in der 2 Datei schon vorhanden ist.
Wenn ja, dann soll die nächste Zeile geprüft werden, falls nicht, dann soll diese Zeile in die erste freie Zeile kopiert werden.
Rein in Excel würde ich das wohl mit einem SVerweis lösen, aber wie kriege ich das in VBA hin?
Dazu das kopieren der Zeilen der einen Datei in eine andere Datei in einem anderem Verzeichnis.
Meine Versuche dazu waren eher etwas kümmerlich; ich hoffe ihr wisst Rat.
Vielen Dank schon mal vorab!
Viele Grüße
Bastian
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Zeile kopieren wenn Wert nicht enthalten ist
23.10.2009 09:49:38
Reinhard
Hallo Bastian,
Sub tt()
Dim wks1 As Worksheet, wks2 As Worksheet, Zei1 As Long, Zei2 As Long
Dim wkb As Workbook, Anz As Integer
For Each wkb In Workbooks
If wkb.Name = "Dat1.xls" Or wkb.Name = "Dat2.xls" Then Anz = Anz + 1
Next wkb
If Anz 
Gruß
Reinhard
Anzeige
AW: Zeile kopieren wenn Wert nicht enthalten ist
23.10.2009 10:07:49
Bastian
Hallo Reinhard,
noch klappt es leider nicht ganz.
Es erscheint immer die Messagebox das ich beide Datein öffnen soll - was ich auch getan habe.
Die Namen und Verzeichnisse habe ich natürlich angepasst.
Datei 1: P:\Test\Test 2.0.xls (Tabellenblatt = Stammblatt)
Datei 2: P:\Test\Sammeltest.xls (Tabellenblatt = Tabelle1)
Habe die Verzeichnisse und Namen in den "" angepasst - leider kommt trotzdem die oben besagte Meldung.
Was habe ich vergessen anzupassen?
Dank dir.
Viele Grüße
Bastian
Anzeige
AW: Zeile kopieren wenn Wert nicht enthalten ist
23.10.2009 12:18:21
Reinhard
Hallo Bastian,
Set wks1 = Workbooks("Test 2.0.xls").Worksheets("Stammblatt")
Set wks2 = Workbooks("Sammeltest.xls").Worksheets("Tabelle1")
Gruß
Reinhard
AW: Zeile kopieren wenn Wert nicht enthalten ist
23.10.2009 13:45:00
Bastian
Hallo Reinhard,
ähm ja... manchmal sieht man den Wald vor lauter Bäumen nicht... ;-)
Es klappt wunderbar! Vielen Dank für die klasse Hilfe!
Viele Grüße
Bastian
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeile kopieren, wenn Wert nicht enthalten ist


Schritt-für-Schritt-Anleitung

Um eine Zeile in Excel zu kopieren, wenn ein Wert nicht in einer anderen Zelle enthalten ist, kannst du VBA verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und gehe zu VBA: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf 'VBAProject (deinDateiname)', wähle Einfügen und dann Modul.

  3. Füge den folgenden Code ein:

    Sub ZeileKopieren()
       Dim wks1 As Worksheet, wks2 As Worksheet
       Dim Zei1 As Long, Zei2 As Long
       Dim Wert As Variant
    
       Set wks1 = Workbooks("Test 2.0.xls").Worksheets("Stammblatt")
       Set wks2 = Workbooks("Sammeltest.xls").Worksheets("Tabelle1")
    
       For Zei1 = 1 To wks1.Cells(Rows.Count, "O").End(xlUp).Row
           Wert = wks1.Cells(Zei1, "O").Value
           If Application.WorksheetFunction.CountIf(wks2.Range("O:O"), Wert) = 0 Then
               Zei2 = wks2.Cells(Rows.Count, 1).End(xlUp).Row + 1
               wks1.Rows(Zei1).Copy wks2.Rows(Zei2)
           End If
       Next Zei1
    End Sub
  4. Anpassen der Dateinamen und -pfade: Stelle sicher, dass du die Namen der Dateien und die Arbeitsblätter anpasst.

  5. Führe den Code aus: Drücke F5, um das Makro auszuführen.


Häufige Fehler und Lösungen

  • Fehler: "Beide Dateien müssen geöffnet sein"

    • Stelle sicher, dass die Dateinamen und -pfade korrekt sind. Überprüfe die Groß- und Kleinschreibung in den Dateinamen.
  • Fehler: Zeilen werden nicht kopiert

    • Vergewissere dich, dass die Werte in Spalte O der ersten Datei korrekt sind und dass sie nicht schon in der zweiten Datei vorhanden sind.

Alternative Methoden

Falls du kein VBA verwenden möchtest, kannst du auch eine Formel nutzen, um zu überprüfen, ob ein Wert in einer Zelle enthalten ist. Zum Beispiel:

=IF(ISERROR(MATCH(O1, Tabelle2!O:O, 0)), "Kopieren", "Nicht Kopieren")

Diese Formel zeigt an, ob der Wert in Spalte O bereits vorhanden ist. Du kannst dann manuell entscheiden, ob du die Zeile kopieren möchtest.


Praktische Beispiele

Angenommen, du hast zwei Dateien: Test 2.0.xls mit einem "Stammblatt" und Sammeltest.xls mit "Tabelle1". Mit dem obigen VBA-Skript kannst du alle Zeilen, deren Wert in Spalte O nicht in Sammeltest.xls vorhanden ist, automatisch in die nächste freie Zeile von Tabelle1 kopieren.


Tipps für Profis

  • Verwende Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert werden. Das hilft, Fehler zu vermeiden.
  • Optimiere den Code: Wenn du regelmäßig große Datenmengen verarbeiten musst, könnte es hilfreich sein, die Bildschirmaktualisierung auszuschalten, um den Prozess zu beschleunigen:

    Application.ScreenUpdating = False
    ' Dein Code hier
    Application.ScreenUpdating = True

FAQ: Häufige Fragen

1. Wie kann ich das Skript anpassen, wenn ich mehr als zwei Dateien habe? Du kannst eine Schleife verwenden, um mehrere Arbeitsmappen zu durchlaufen und das Skript entsprechend anzupassen.

2. Kann ich das Skript auch für andere Spalten verwenden? Ja, passe einfach die Spaltenreferenzen im Code an, um andere Spalten zu überprüfen.

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