VBA - Arbeitsblatt vergleichen und Daten kopieren

  • Excel

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von INOPIAE.

    VBA - Arbeitsblatt vergleichen und Daten kopieren

    Guten Morgen zusammen,

    im Bereich VBA hatte ich mir bisher immer über bestehende Codes aus dem Forum aushelfen können. Leider stehe ich seit einigen Tagen vor einem Problem, welches ich so noch nicht lösen konnte.
    Meine Funktion soll wie folgt funktionieren:

    In dem Arbeitsblatt "Tabelle2" stehen in der Spalte A in einzelnen Zelle unterschiedliche Werte "Chargen-Nummern" welche per Hand eingetragen werden. Über das VBA soll dann aus dem Arbeitsblatt "Tabelle1" die Werte in der Spalte A verglichen werden und wenn Übereinstimmungen vorhanden sind, sollen alle Werte (oder nur gewisse, aber das bekomme ich sicher selbst gecodet) von dem Arbeitsblatt "Tabelle1" zum Arbeitsblatt "Tabelle 2" kopiert werden.

    Die Tabelle1 ist einfach nur ein sehr großer Datensatz und die Tabelle 2 soll durch die Eintragung der Chargennummer die Werte übernehmen.

    Falls mir hierzu jemand behilftlich sein könnte, wäre ich sehr dankbar. Ich hoffe, dass die meine Problemstellung ausreichend beschreiben könnte.

    Vielen Dank und liebe Grüße!
    Hi versuche es mal damit:

    Visual Basic-Quellcode

    1. Dim rng As Range
    2. Set rng = Worksheets("Tabelle1").Range("A:A").Find(HierDerWertNachDemGesuchtWird, LookIn:=xlFormulas2)
    3. If Not rng Is Nothing Then
    4. Debug.Print rng.Row 'Hier ist die Zeile angegeben, wenn etwas gefunden wird
    5. End If
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).
    Hallo INOPIAE,

    vielen Dank für deine Hilfe.

    Jedoch suche ich nicht nach einem spezifischen Wert, sondern dem Wert, der jeweils in der Zelle (Spalte A im Tabellenblatt "Tabelle2" steht. Also egal ob ich den Wert in A2 oder A3 oder A4 schreibe, soll nach dem jeweiligen Wert geschaut werden, ob in der Tabelle1 der selbe Wert steht.
    Set rng = Worksheets("Tabelle1").Range("A:A").Find(HierDerWertNachDemGesuchtWird, LookIn:=xlFormulas2)


    Oder lese ich den Code gerade falsch?

    Vielen Dank für deine Antwort.
    Den Wert aus Tabelle2 den Du suchst musst Du bei "HierDerWertNachDemGesuchtWird" eingeben.

    Dies kannst Du zum Beispiel in einer Schleife machen.

    Visual Basic-Quellcode

    1. Dim lngZeile as Long
    2. For lngZeile = 2 to 100
    3. If Worksheets("Tabelle2").Cells(lngZeile, 1).Value = vbNullString Then Exit For
    4. Dim rng As Range
    5. Set rng = Worksheets("Tabelle1").Range("A:A").Find(Worksheets("TAbelle2").Cells(lngZeile, 1).Value, LookIn:=xlFormulas2)
    6. If Not rng Is Nothing Then
    7. Debug.Print rng.Row 'Hier ist die Zeile angegeben, wenn etwas gefunden wird
    8. End If
    9. next
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).