Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1532to1536
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

Excel-Datein automatisch miteinander vergleichen

Excel-Datein automatisch miteinander vergleichen
28.12.2016 22:24:36
Michi
Hallo zusammen,
ich muss momentan excel-sheets durch einen Soll-Ist-Abgleich vergleichen (ob sie vom Zelleninhalt her identisch sind oder nicht). Da das jede Menge sind und das regelmäßig (jeden Monat wieder) passieren wird, habe ich mich sofort (trotz meiner bescheidenen Kenntnisse) rangemacht, diesen Prozess mithilfe von VBA zu automatisieren. Leider klappt das nicht so wie gewünscht (Teilerfolge sind da, aber insgesamt bin ich mit meinem VBA-Latein am Ende) und ich würde mich über Hilfe sehr freuen.
Meine Probleme sind die Folgenden:
Das Öffnen beider Dateien und der Abgleich über eine Schleifenfunktion. - Irgendetwas stimmt da nicht. Habt ihr da eine Idee?
Ich habe momentan das Problem, dass die Namen der Tabellenblätter unbekannt sind und regelmäßig wechseln werden, wie kann ich dieses Problem umgehen? Ich habe hierbei noch gar keine Idee (gibt es bspw. eine Urbezeichnung für das wirklich erste Tabellenblatt?)
Um den Dateipfad und die Datei sowie das zu vergleichende Gegenstück in das VBA-Programm einzuspeisen, habe ich ein kleines "Cockpit" im Tab1 erstellt, das ist bestimmt nicht elegant, sollte aber nicht der Kern des Problems sein oder was sehe ich da nicht?
Die Inhalte werden Buchstaben und Zahlen sein, kann ich beide String-Werten zuordnen oder wie kann ich das Problem, falls das nicht funktioniert, umgehen?
Die Datei findet ihr hier:

Die Datei https://www.herber.de/bbs/user/110231.xlsm wurde aus Datenschutzgründen gelöscht

Vielen Dank und liebe Grüße,
Michi

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel-Datein automatisch miteinander vergleichen
28.12.2016 23:05:29
Fennek
Hallo,
teste mal diesen Code:

sub Vergleich()
dim WB1 as workbook
dim WB1 as workbook
set wb1 = workbooks.open cells(2,1) & cells(4,1)
set wb2 = workbooks.open cells(1,1) & cells(5,1)
for i = 5 to 100
for j = 5 to 100
if wb1.sheets(1).cells(i,j)  wb2.sheets(1).cells(i,j) then Fehler = Fehler + 1
next j
next i
msgbox "Fehler: " & Fehler
end sub
In den beiden Zellen mit den Pfaden muss jeweils am Ende ein "\" stehen.
mfg
AW: Excel-Datein automatisch miteinander vergleichen
29.12.2016 00:28:46
Michi
Hallo Fennek,
der Code erscheint sehr simpel und ich finde nix negatives - werde ihn morgen (Ebenso wie Michaels Vorschlag) austesten und Bericht erstatten :-). - Vielen Dank schonmal :-)!
Freundliche Grüße und gute Nacht,
Darius
Anzeige
AW: Excel-Datein automatisch miteinander vergleichen
28.12.2016 23:38:05
Michael
Hi Michi,
das erste Tabellenblatt ist schlicht Sheets(1).
Das Makro hängt, weil Du nur den Pfad, nicht jedoch den Dateinamen mit übergibst; außerdem mußt Du sicherstellen, daß ein "\" dazwischensteht.
Haben die Dateien wirklich 100 Spalten? Vielleicht wäre es nicht ungeschickt, die max. Zeilen und Spalten beider Dateien zunächst zu ermitteln und die Schleifen nur bis zum jeweils niedrigsten Wert laufen zu lassen: eine etwaige unterschiedliche Anzahl könntest Du dann getrennt ausgeben.
Weiterhin läuft so was mit Verwendung von Arrays schneller...
https://www.herber.de/bbs/user/110232.xlsm
Schöne Grüße,
Michael
Anzeige
AW: Excel-Datein automatisch miteinander vergleichen
29.12.2016 00:26:06
Michi
Hallo Michael,
Dein VBA-Code sieht echt kompliziert aus :-D, um ehrlich zu sein, verstehe ich ihn zu großen Teilen noch nicht. Vielen Dank für die Mühe!! Ich gucke mir den Code die Tage an, und würde Dich nochmal fragen, wenn ich dann etwas davon noch nicht verstanden habe.
Bisher sehe ich "nur", dass Du alles ganz anders gemacht hast. Hat bei mir nur der \ gefehlt oder noch mehr (teste es erst morgen früh) und Dein Code ist eleganter oder war der gesamte Code von Anfang an zum Scheitern verurteilt? - Ich hatte nur so ein VBA-Einführungskurs für BWLer, und habe versucht mich mit dem Wissen langzuhangeln, daher brauche ich für das Verstehen ein bisschen
Schöne Grüße und gute Nacht,
Michi
Anzeige
na, schau halt mal,
29.12.2016 19:54:58
Michael
Michi,
der Punkt ist, daß "einfacher" Code nicht unbedingt der Schnellste ist.
Mit Arrays und ein bißchen Drumherum arbeitet die Geschichte ziemlich fix, was bei vielen Dateien ganz gut sein mag.
Allerdings: mein Code hat einen Haken: mit range("A1").currentregion wird ein kompletter Tabellenbereich nur dann ganz erfaßt, wenn er *zusammenhängt*. Da wäre im Detail noch dran zu schrauben.
Schöne Grüße,
Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige