2 Excel Tabellen abgleichen
Hallo zusammen,
habe eine relativ schwierige aufgabe vor mir. Ich möchte gerne 2 Excel Tabellen mit einander abgleichen.
Die erste Tabelle ist die Kundenliste von 2006 und die andere ist die Kundenliste von 2007.
Von der Kundenliste 2006 muss jetzt die Spalte G, namens RV mit den Attributen xy, in die Kundenliste 2007 zu der jeweils gleichen Kundennummer gespeichert werden. Die Kundennummer ist in 2006 die Spalte B, namens KdNr, und in 2007 die Spalte F, namens S_KUNR.
Ich hoffe jemand kann die Problematik erkennen und mir einen Lösungsvorschlag machen.
Zur Info noch ... ich kenne mich leider nicht wirklich mit VBA aus und würde mich somit dann auch über eine kleine einweisung freuen, wie man ein Makro einbindet.
MfG
Julian
Antwort schreiben
Antwort 2 von Julian vom 30.01.2019, 08:38 Options
Guten Morgen,
dieses Beispiel hab ich hier im Forum schon gefunden, nur leider habe ich 2 alleinstehende Tabellen und nicht nur eine Tabelle mit mehreren Tabellenblättern.
Weiss da zufällig jemand noch weiter?
Gruß Julian
Antwort 3 von Hajo_Zi vom 30.01.2019, 09:34 Options
Hallo Julia,
"nicht nur eine Tabelle mit mehreren Tabellenblättern"
das ist eine Datei (datei ist was anderes als Tabelle) mit mehreren Tabelle.
Im Code muß vor den Tabellen nur der Dateiname ergänzt werden. Die Dateie müssen auf sein.
Gruß Hajo
Antwort 4 von Julian vom 30.01.2019, 12:12 Options
Hallo Hajo,
ich hab es zwar mal ausprobiert so wie du es kurz beschrieben hattest, aber hab es einfach nicht hinbekommen. Hab wie gesagt überhaupt keine ahnung wo ich was genau ändern soll und wie ich das dann überhaupt abfragen kann.
Gruß Julian
Antwort 5 von Hajo_Zi vom 30.01.2019, 12:31 Options
Hallo Julian,
über Tag habe ich wenig Zeit, ich kann mich damit erst am Abend beschäftigen. Schreibe es nochmal ganz genau auf.
Für welches Makro hast Du Dich entschieden?
Welche Namen hat die Originaldatei?
Welche Tabelle in dieser Datei?
Welche Spalte in der Originaltabelle?
Welche Namen hat die Kopiei?
Welche Tabelle in dieser Datei?
Welche Spalte in der Kopie?
Gruß Hajo
Antwort 6 von Julian vom 30.01.2019, 14:46 Options
Hallo Hajo,
ich habe mich für kein Makro entschieden, aber als probe mal mit der oben von dir vorgeschlagenen Datei rumprobiert.
Die erste Datei hat den Namen: Kundenliste 2007
mit der Tabelle: Daten
und die Spalte D mit dem Namen: Konzern
Die zweite Datei hat den Namen: Masterliste Upgrades 15.1106
mit der Tabelle: Kundenliste 03.02.2006
und die Spalte A mit dem Namen: Konzern
Ich hoffe du kannst was damit anfangen.
Gruß Julian
Antwort 7 von Hajo_Zi vom 30.01.2019, 15:01 Options
Hallo Julian,
ich gehe mal davon aus der Dateuiname endet auf ".XLS"
Soweit ich mich erinnere waren in der Datei Beispiele. Welches würde den so ungefähr Deiner Aufgabe entsprechen, da es auch unterschiedliche Varianten waren.
Gruß Hajo
Antwort 8 von Julian vom 30.01.2019, 15:40 Options
Hallo Hajo,
ja die Dateien sind .xls ... bei den Beispielen aus der Datei würde Makro: Vergleich 1am ehesten passen, wobei nicht die Füllfarbe gesetzt werden soll, sondern aus der Datei "Masterliste Upgrades 15.1106" und der Tabelle "Kundenliste 03.02.2006" die Spalte G (Namens RV) in die Datei "Kundenliste 2007" in die Tabelle "Daten" in eine neue Spalte geschrieben werden sollte. Die Spalten "BV" oder "BW" wären hierzu frei.
Ich hoffe du blickst noch durch was gemacht werden sollte. ;)
Gruß
Antwort 9 von Hajo_Zi vom 30.01.2019, 16:05 Options
Hallo Julian,
jetzt ist es eindeutig. Das dauert am Abend aber auch noch ein Weile, da ich mir schon einiges vorgenommen habe. Ich vermute bis 21:00 ist es erledigt. Ich kann es ja nur theoretisch machen (also nur Code) Testung ist ja nicht, da keine Dateien.
Gruß Hajo
Antwort 10 von Julian vom 30.01.2019, 16:11 Options
Mach dir keinen stress, das kann auch bis morgen warten.
Finds sowieso so super, dass du mir so stark zur seite stehst dabei.
Gruß Julian
(P.S.:Geh jetzt nach Hause. ;) )
Antwort 11 von Hajo_Zi vom 30.01.2019, 19:34 Options
Hallo Julian,
ich habe mich jetzt mal an Deine Beschreibung gehalten auch mit den Dateinamen und Tabellennamen. Ich bin das nur theoretisch durchgegangen. Ich hoffe mal ich habe alles richtig gemacht ansonsten brächte ich mal 2 kurze Dateienmit markierung was übertragen werden soll. Meine Mailadressse findest Du auf meiner HP, schaue dazu ins Profil. Ich vermute mal die Lösung kommt aber erst morgen Abend.
Option Explicit
Sub Tabellen_Vergleichen1()
'**************************************************
'* H. Ziplies *
'* 30.01.07 *
'**************************************************
Dim WbO As Worksheet ' Original Datei
Dim WbK As Worksheet ' Kopie Datei
Dim LoI As Long ' 1. Schleifenvariable
Dim LoJ As Long ' 2. Schleifenvariable
Dim LoLetzte1 As Long ' letzte Zeile in Spalte A
Dim LoLetzte2 As Long ' letzte Zeile in Spalte B
Set WbO = Workbooks("Kundenliste2007.xls").Worksheets("Daten")
Set WbK = Workbooks("Masterliste Upgrades 151106.xls").Worksheets("Kundenliste 03.02.2006")
With WbO
' unabhängig von Excelversion für Spalte D (4), ich bin davon ausgegangen das keine Zeilen ausgeblendet sind
LoLetzte1 = IIf(IsEmpty(.Cells(Rows.Count, 4)), .Cells(Rows.Count, 4).End(xlUp).Row, Rows.Count)
End With
With WbK
' unabhängig von Excelversion für Spalte D (4), ich bin davon ausgegangen das keine Zeilen ausgeblendet sind
LoLetzte2 = IIf(IsEmpty(.Cells(Rows.Count, 1)), .Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
End With
For LoI = 1 To LoLetzte1 ' 1. Schleife alle Werte Spalte D Original
For LoJ = 1 To LoLetzte2 ' 2. Schleife alle Werte Spalte A Kopie
If WbO.Cells(LoI, 1) <> "" Then ' Leerzellen nicht kennzeichnen
If WbO.Cells(LoI, 1) = WbK.Cells(LoJ, 2) Then
WbO.Cells(LoI, 74) = WbK.Cells(LoJ, 7)
End If
End If
Next LoJ
Next LoI
End Sub
Gruß Hajo
Antwort 12 von Hajo_Zi vom 30.01.2019, 19:37 Options
Hallo Julian,
ich hatte noch 2 Zeilen vergessen
Set WbO = Nothing
Set WbK = Nothing
End Sub
Gruß Hajo
Antwort 13 von Julian vom 31.01.2019, 11:07 Options
Hallo Hajo,
Danke schonmal für die arbeit.
Allerdings bringt er mir beim anwenden des Makros eine Fehlermeldung bei folgender Zeile:
Set WbO = Workbooks("Kundenliste2007.xls").Worksheets("Daten")
Fehler: "Index außerhalb des Gültigen Bereichs"
Was ist da gemeint?
Gruß Julian
Antwort 14 von Hajo_Zi vom 31.01.2019, 11:19 Options
Hallo Julian,
die beiden Dateien sind auf?
Der Dateiname und Tabellenname stimmt Buchstabe für Buchstabe?
Gruß Hajo
Antwort 15 von Julian vom 31.01.2019, 11:32 Options
Ja beide waren auf .. nur beim Dateinamen war ein Leerzeichen zu wenig. ;) Das hab ich aber jetzt schon geändert.
Jetzt gibt er mir aber den selben Fehler bei der nächsten Zeile aus:
Set WbK = Workbooks("Masterliste Upgrades 151106.xls").Worksheets("Kundenliste 03.02.2006")
und da stimmen alle Dateinamen.
Gruß
Antwort 16 von Hajo_Zi vom 31.01.2019, 11:57 Options
Hallo Julian,
ich traue Dir schon zu das Du vergleichen kannst. Aber irgendwas muß noch falsch sein.
Ich hatte zu Hause Extra die 2 Dateien angelegt ohne Inhalt und es lief über diese Zeilen.
Also nochmal genau Prüfen.
Gruß Hajo
Antwort 17 von Julian vom 06.02.2019, 13:41 Options
Hallo Hajo,
wollte dir nur für deine Mühen Danken, aber habs jetzt ohne Makro geschafft.
Ich habs nun über die Funktion SVERWEIS gemacht und hat super funktioniert.
Gruß Julian