Anzeige
Archiv - Navigation
1940to1944
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Wert aus Tabelle1 in Tabelle2 eintragen wenn nicht vorhanden
15.08.2023 09:24:36
rotwildmarcy
Hallo zusammen,

ich suche nach einer Möglichkeit für folgendes Szenario:

Wenn ich in Tabelle 1 in Spalte D eine Zahl (4 stellig) eingebe, soll automatisch geprüft werden, ob diese Zahl in Tabelle 2 in Spalte A schon vorhanden ist.
Sollte die Zahl noch nicht vorhanden sein, soll sie in der näcshten freien Zeile eingefügt werden.

Geht das irgendwie automatisch?

Danke!

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wert aus Tabelle1 in Tabelle2 eintragen wenn nicht vorhanden
15.08.2023 09:40:54
Oberschlumpf
Hi,

versuch mal (ungetestet)

schreib ins Change-Ereignis von Tabelle 1 diesen Code:


Dim rng as Range
If Target.Column = 4 'wenn Wert in Spalte 4 (D) geändert oder hinzugefügt
Application.EnableEvents = False
With Sheets("Tabelle 2") 'wenn im Original anders, dann hier anpassen
Set rng = .Range("A:A").Find(Target.Value)
If rng Is Nothing Then
.Range("A" & .Cells(.Rows.Count, 1).End(xlUp).Row + 1).Value = Target.Value
End If
Application.EnableEvents = True
End If

Du kennst das Change-Ereignis noch nicht? Ganz viele Erklärungen dazu findest du mit Google.

Hilfts?
Nein? Dann zeig bitte per Upload eine Bsp-Datei mit Bsp-Daten.

Ciao
Thorsten
Anzeige
Wert aus Tabelle1 in Tabelle2 eintragen wenn nicht vorhanden
15.08.2023 10:24:27
rotwildmarcy
Hallo,

vielen Dank, funktioniert nach kleiner Anpassung perfekt !

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Anzeige

Infobox zum Thema

EXCEL - Wert aus Tabelle1 in Tabelle2 eintragen, wenn nicht vorhanden


Inhaltsverzeichnis


Die Fragestellung


Du möchtest einen Wert aus einer Tabelle (Tabelle1) in eine andere Tabelle (Tabelle2) übertragen, aber nur, wenn der Wert in Tabelle2 noch nicht vorhanden ist.


Erläuterung des Problems {#erläuterung-des-problems}


Das Übertragen von Werten zwischen Tabellen kann manuell zeitaufwendig sein, besonders wenn es darum geht, Duplikate zu vermeiden. Excel bietet Funktionen wie VLOOKUP oder INDEX und MATCH, die helfen können, aber diese sind nicht immer intuitiv oder effizient für große Datenmengen.


Lösung des Problems {#lösung-des-problems}


Eine Möglichkeit, dieses Problem zu lösen, ist die Verwendung einer Kombination aus Excel-Funktionen oder ein VBA-Skript, das den Wert sucht und ihn nur dann einträgt, wenn er nicht gefunden wird. Hier ist ein Beispiel für eine Formel-Lösung:

=IF(ISERROR(MATCH(A2; Tabelle2!$A$2:$A$100; 0)); A2; "")

Diese Formel prüft, ob der Wert in Zelle A2 von Tabelle1 in der Spalte A von Tabelle2 zwischen A2 und A100 existiert. Wenn nicht, wird der Wert aus A2 angezeigt, andernfalls wird eine leere Zeichenfolge angezeigt.

Für eine VBA-Lösung könnte der Code so aussehen:

Sub TransferUniqueValues()
    Dim sourceSheet As Worksheet
    Dim targetSheet As Worksheet
    Dim sourceRange As Range
    Dim cell As Range
    Dim foundCell As Range

    ' Definiere die Arbeitsblätter
    Set sourceSheet = ThisWorkbook.Sheets("Tabelle1")
    Set targetSheet = ThisWorkbook.Sheets("Tabelle2")

    ' Definiere den Bereich, der durchsucht werden soll
    Set sourceRange = sourceSheet.Range("A2:A100") ' Anpassen an den tatsächlichen Bereich

    ' Durchlaufe alle Zellen im Quellbereich
    For Each cell In sourceRange
        ' Suche nach dem Wert in der Ziel-Tabelle
        Set foundCell = targetSheet.Columns(1).Find(What:=cell.Value, LookIn:=xlValues, LookAt:=xlWhole)

        ' Wenn der Wert nicht gefunden wurde, füge ihn hinzu
        If foundCell Is Nothing Then
            ' Füge den Wert in die erste leere Zelle der Spalte A in der Ziel-Tabelle ein
            targetSheet.Cells(targetSheet.Rows.Count, 1).End(xlUp).Offset(1, 0).Value = cell.Value
        End If
    Next cell

    ' Aufräumen
    Set sourceSheet = Nothing
    Set targetSheet = Nothing
    Set sourceRange = Nothing
    Set cell = Nothing
    Set foundCell = Nothing
End Sub

Dieses VBA-Skript durchläuft alle Zellen im definierten Bereich von Tabelle1 und überprüft, ob der Wert bereits in Tabelle2 vorhanden ist. Wenn nicht, wird der Wert am Ende der Liste in Tabelle2 eingetragen.


Anwendungsbeispiele aus der Praxis


  • Datenzusammenführung: Zusammenführen von Kundenlisten aus verschiedenen Quellen ohne Duplikate.
  • Inventarverwaltung: Aktualisieren einer Inventarliste mit neuen Artikeln, die noch nicht aufgeführt sind.

Tipps


  • Überprüfe, ob die Spalten, in denen du suchst und einfügst, korrekt definiert sind.
  • Wenn du große Datenmengen hast, kann die VBA-Lösung effizienter sein als die Formel-Lösung.

Verwandte Themenbereiche


  • Datenbereinigung
  • Duplikatsuche
  • Automatisierung von Excel-Aufgaben

Zusammenfassung


Das Übertragen von Werten zwischen zwei Tabellen unter Vermeidung von Duplikaten kann mit Excel-Formeln oder einem VBA-Skript effizient durchgeführt werden. Beide Methoden haben ihre Anwendungsfälle und können je nach Größe und Komplexität der Daten ausgewählt werden. Die Automatisierung dieses Prozesses spart Zeit und reduziert Fehler bei der Datenverwaltung.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige