Excelmakro: Vergleichen von Feldern in unterschieldichen Tabellen...

Sebozwei

Grünschnabel
Hi Leute
kennt jemand von euch eine Seite, wo ich eine Übersicht über alle Makrofunktionen finde und es da auch Codebeispiele gibt.
Ich benötige folgende Codeschnipsel:
Wie kann ich zwei Excelfelder vergleichen, die in unterschiedlichen Tabellen sind.

also

Tabelle1:
name | nummer
müller|2
paul|3

tabelle2:

Tabelle1:
name | nummer
müller|2
paul|4

Es sollen immer die Felder verglichen werden, bei denen der Name übereinstimmt.
Wenn das Feld Nummer der entsprechenden Zeilen nicht übereinstimmt, soll die komplette Zeile von tabelle2 in tabelle3 übertragen werden.

Thx Sebo
 
Zuletzt bearbeitet:
hab eine Lösung gefunden:

Code:
 l = 2
  For i = 2 To 3
    Sheets("alt").Select
    Range("A" + CStr(i)).Select
    name1 = ActiveCell.FormulaR1C1
    Range("B" + CStr(i)).Select
    nummer1 = ActiveCell.FormulaR1C1
    For k = 2 To 3
      Sheets("neu").Select
      Range("A" + CStr(k)).Select
      name2 = ActiveCell.FormulaR1C1
      Range("B" + CStr(k)).Select
      nummer2 = ActiveCell.FormulaR1C1
      If name1 = name2 Then
        If nummer1 <> nummer2 Then
          Sheets("erg").Select
          Range("A" + CStr(l)).Select
          ActiveCell.FormulaR1C1 = name1 + "|" + name2
          Range("B" + CStr(l)).Select
          ActiveCell.FormulaR1C1 = nummer1 + "|" + nummer2
          l = l + 1
        End If
      End If
    Next k
  Next i
 
Hallo,

hier ein Vorschlag der funktioniert.
Er muß allerdings auf deine konkreten Bedingungen angepaßt werden.
Auch wäre die Frage zu klären, ob die Namen mehrfach auftreten und wie ist dann zu verfahren.
Aber vielleicht hilft es dir weiter.



Sub Test()


Sheets("Tabelle1").Select

z1 = 2 '*** Startzeile in Tabelle1
z3 = 2 '*** Startzeile in Tabelle3

While Cells(z1, 1) <> Empty

z2 = 2 '*** Startzeile in Tabelle2

While Sheets("Tabelle2").Cells(z2, 1) <> Cells(z1, 1) And Cells(z2, 1) <> Empty
z2 = z2 + 1
Wend

If Sheets("Tabelle2").Cells(z2, 1) = Cells(z1, 1) Then
If Sheets("Tabelle2").Cells(z2, 2) <> Cells(z1, 2) Then
Sheets("Tabelle2").Rows(z2).Copy
Sheets("Tabelle3").Select
ActiveSheet.Paste Destination:=Cells(z3, 1)
Sheets("Tabelle1").Select
z3 = z3 + 1
End If
End If

z1 = z1 + 1

Wend

End Sub


Gruß
Ori
 

Neue Beiträge

Zurück