Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1348to1352
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
Inhaltsverzeichnis

Daten vergleichen

Daten vergleichen
11.02.2014 16:22:27
Altun
Hallo Zusammen,
habe 2 Excel Tabellen dessen Datensätze: Spalten (Marke, Model, Jahr und mehrere Teilenummern) verglichen werden sollen.
Die 2. Tabelle ist immer die Tabelle dessen Inhalte also Teilenummern sich ergänzen alle 3-4 Monate kann zu einer bestimmten Marke eine neue Teilenummer hinzukommen.
Nun möchte ich ein Makro schreiben, dass mir immer die Daten in der 1. Exceltabelle also in meiner Mastertabelle aktualisiert und die neuen Teilenummern, die zu einer bestimmten Marke hinzugekommen sind in einer neuen Spalte bei meiner Mastertabelle hinzufügt.
Nur habe ich leider bist heute mit Makros nichts zu tun gehabt. Also HILFEEEEEE
wäre auch über eine andere Lösüng dankbar.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten vergleichen
12.02.2014 10:32:45
fcs
Hallo Altun,
wenn du schon um HILFEEEEEE bittest, dann solltest du hier eine Beispieldatei hochladen mit ein paar Datensätzen in der Mastertabelle und passenden Datensätzen mit neuen Teile-Nummern in der 2.Tabelle.
Durch die "unglückliche" Anordnung der Teilenummern in mehreren Spalten sind andere Ansätze über Formeln und ggf. AutoFilter nicht bzw. nur sehr schierig machbar.
Gruß
Franz

AW: Daten vergleichen
12.02.2014 11:39:00
Altun
Hallo Franz,
danke für deine rasche Antwort.
Habe nun beide Tabellen angehängt.
https://www.herber.de/bbs/user/89244.xlsx
https://www.herber.de/bbs/user/89243.xlsx
Die Datei "aktualisieren" hat in diesem Fall eine neue Spalte zu den bestimmten Fahrzeugen bekommen. Die Spalte 14 soll nun auf die Masterdatei hinzugefügt werden. Wichtig ist halt hierbei, dass die Teilenummern auch an den richtigen Fahrzeugen zugeordnet sind.
Es ist jetzt aber so dass ich z.B. alle 3 Monate diese aktualisieren Tabelle neu bekomme und einen Vergleich ziehen muss ob sich Daten verändert haben also auch eine neue Spalte hinzugekommen ist, wenn ja muss diese auch in die Masterdatei rein.
Wäre so dankbar wenn das klappen würde und ich die Tausend Datensätze einzeln durchgehen muss.
Gruß
Altun

Anzeige
AW: Daten vergleichen
12.02.2014 16:14:53
fcs
Hallo Altun,
hier mal ein Anlauf für die Umsetzung.
Teste es mal mit einer Kopie der Masterdatei.
Das Makro kannst du entweder in die Masterdatei einbauen oder in deine persönliche Makroarbeitsmappe.
Beim Start des Makros muss die Masterdatei geöffnet und die aktive Arbeitsmappe sein.
Die Datei mit den neuen Daten sollte geschlossen sein. Sie wird vom Makro in einem Dialog abgefragt.
Gruß
Franz
Sub Import_Interchange()
Dim wkbMaster As Workbook, wkbNeu As Workbook, varAuswahl
Dim wksMaster As Worksheet, wksNeu As Worksheet
Dim ZeileMaster As Long, ZeileNeu As Long
Dim varMake, varModel, varYear
Dim varInterchangeNeu, varInterchangeAlt
Dim SpalteNeu As Long, SpalteMaster As Long
Dim bolGefunden As Boolean
varAuswahl = Application.GetOpenFilename( _
Title:="Bitte Datei mit neuen Teilenummern auswählen")
If varAuswahl = False Then Exit Sub
Set wkbMaster = ActiveWorkbook
Set wksMaster = wkbMaster.Worksheets(1) 'oder .Worksheets("TabellenName")
Set wkbNeu = Application.Workbooks.Open(Filename:=varAuswahl, ReadOnly:=True)
Set wksNeu = wkbNeu.Worksheets(1) 'oder .Worksheets("TabellenName")
With wksMaster
SpalteMaster = .Cells(1, .Columns.Count).End(xlToLeft).Column
varInterchangeAlt = .Cells(1, SpalteMaster).Value
End With
With wksNeu
SpalteNeu = .Cells(1, .Columns.Count).End(xlToLeft).Column
varInterchangeNeu = .Cells(1, SpalteNeu).Value
End With
If varInterchangeNeu = varInterchangeAlt Then
MsgBox "Die Teilespalte """ & varInterchangeNeu & """ ist im Master schon vorhanden"
Else
SpalteMaster = SpalteMaster + 1
wksMaster.Cells(1, SpalteMaster) = varInterchangeNeu
With wksNeu
'Zeilen in neuer Interchange-Dtaei abarbeiten
For ZeileNeu = 3 To .Cells(.Rows.Count, 1).End(xlUp).Row
'Marke, Model und Jahr für Vergleich merken
varMake = .Cells(ZeileNeu, 2).Value
varModel = .Cells(ZeileNeu, 3).Value
varYear = .Cells(ZeileNeu, 4).Value
If .Cells(ZeileNeu, SpalteNeu)  "" Then
'neue Interchange-Spalte enthält Daten
bolGefunden = False
With wksMaster
For ZeileMaster = 3 To .Cells(.Rows.Count, 2).End(xlUp).Row
If varMake = .Cells(ZeileMaster, 2).Value Then
If varModel = .Cells(ZeileMaster, 3).Value Then
If varYear = .Cells(ZeileMaster, 4).Value Then
bolGefunden = True
.Cells(ZeileMaster, SpalteMaster) = wksNeu.Cells(ZeileNeu, SpalteNeu)
Exit For
End If
End If
End If
Next ZeileMaster
If bolGefunden = False Then
'Neues Modell in Liste
With .Cells(.Rows.Count, 1).End(xlUp)
'Nummer in nächster Zeile 1 hochzählen
.Offset(1, 0).Value = .Value + 1
'alle neuen Daten kopieren
wksNeu.Range(wksNeu.Cells(ZeileNeu, 2), _
wksNeu.Cells(ZeileNeu, SpalteNeu - 1)).Copy Destination:=.Offset(1, 1)
'aktuelle interchangespalte asufüllen
.Offset(1, SpalteNeu - 1).Value = wksNeu.Cells(ZeileNeu, SpalteNeu).Value
End With
End If
End With 'wksMaster
End If
Next ZeileNeu
End With 'wksNeu
End If
End Sub

Anzeige
AW: Daten vergleichen
13.02.2014 09:38:49
Altun
Hallo Franz,
juhuuuu...vielen vielen Dank, dass du dir die Zeit genommen hast.
Soweit passt alles nur habe ich da noch ein paar Fragen.
1. Soweit ichs vom Code rauslesen konnte wird im Code nach Marke Modell und Jahr geprüft.
Wie ist es dann z.B wenn ich von derselben Marke und vom Model 2 identische Datensätze habe wobei z.B ein Fahrzeug ein Pflegemodell ist. Könnte man die Datensätze auch noch zusätzlich mit der ID prüfen?
2. Mir ist noch aufgefallen bzw habe ichs vergessen zu erwähnen, dass abgesehen von den Spalten Most recent Interchanges auch noch andere Spalten (dessen Namen nicht bekannt sind) in der aktualisierungsdatei bei einer neuen Lieferung auftreten können. Ist es nun auch möglich diese Spalten, die ich sozusagen in meiner Master nicht habe auch hinzuzufügen?
Ich merke schon, dass ich viel möchte. Aber das wäre so die Rettung für mich.
Danke dir schon im Voraus.
Gruß
Altun

Anzeige
AW: Daten vergleichen
13.02.2014 23:59:54
fcs
Hallo Altun,
hier eine Textdatei mit dem angepassten Makro.
https://www.herber.de/bbs/user/89276.txt
Es wird nun zusätzlich die ID geprüft und es werden alle neuen Spalten in die Masterdatei übertragen.
Ich bin davon ausgegangen, dass neue Spalten ebenfalls immer rechts angefügt werden.
Wenn dies nicht der Fall ist, dann muss bei komplett neuen Datensätzen, die in der Masterdatei immer am Ende der Liste eingefügt werden, nochmals etwas angepasst werden, damit die Daten in die richtigen Spalten übertragen werden.
Gruß
Franz

Anzeige
AW: Daten vergleichen
14.02.2014 14:59:38
Altun
Hallo Franz,
danke nochmals. Habe aber das Problem, dass die Spaltenüberschriften nicht übernommen werden.
Wenn eine neue Spalte in der Aktualisierung kommt sollte die Spaltenüberschrift auch übernommen werden.
Gruß
Altun

AW: Daten vergleichen
14.02.2014 17:31:41
fcs
Hallo Altun,
ich hab es mit deinen Beispieldateien getestet.
Da werden die neuen Spaltentitel aus der Zeile 1 einwandfrei in die Masterdatei übernommen.
Die übernahme des Spaltentitels erfolgt in diesen beiden Zeilen:
          arrSpaltenMaster(intNeu) = .Cells(1, .Columns.Count).End(xlToLeft).Column + 1
.Cells(1, arrSpaltenMaster(intNeu)) = varInterchangeNeu

Keine Ahnung warum das bei dir nicht funktioniert.
Gruß
Franz

Anzeige
AW: Daten vergleichen
17.02.2014 08:29:47
Altun
Hey Franz,
also jetzt klappt es irgendwie. Bin super glücklich. Vielen Dank hast mir echt die Last genommen.
Um das alles noch ein wenig einfacher zu haben hätte ich so gern noch ein Button auf der Master-Datei, wo ich dann auch "Aktualisieren" klicke und dann die Datei aussuchen darf.
Ist das möglich?
Gruß
Gülsün

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige