Microsoft Excel

Herbers Excel/VBA-Archiv

Tabellen in Zielstruktur überführen

Betrifft: Tabellen in Zielstruktur überführen von: Bernd
Geschrieben am: 26.09.2020 06:01:46

Daten aus unterschiedlichen Quelltabellen in eine Zieltabelle mit fest vorgegebener Struktur per VBA überführen?

Hallo,

ich habe ein Excel-Problem, dass ich gerne mit VBA lösen würde. Leider reichen meine VBA-Kenntnisse dazu nicht aus.

Ich erhalte regelmäßig von unterschiedlichen Lieferanten Excel-Tabellen mit Artikelstammdaten.

Die Tabellen sind unterschiedlich aufgebaut und können mehrere Tabellenblätter enthalten.
Um die Informationen aus diesen Tabellen in ein Warenwirtschaftssystem einlesen zu können, müssen sie in eine Zieltabelle überführt werden, die eine feste Struktur hat (feste Anzahl von Tabellenblättern, feste Reihenfolge der Spalten mit vorgegebenen Spaltenüberschriften).

Um eine Vorstellung davon zu vermitteln, wie solch eine Tabelle eines Lieferanten aussehen kann und wie die Zieltabelle aussieht, habe ich mal 2 Tabellen hochgeladen (Lieferant A = 140447.xlsx, Zieltabelle = 140448.xlsx)..

Ich würde gerne per VBA eine Maske generieren, in der mir auf der linken Seite die Struktur der Quelltabelle angezeigt wird (z. B. die Spaltenüberschriften der einzelnen Tabellenblätter) und auf der rechten Seite die Struktur der Zieltabelle. Nun würde ich gerne per Mausklick die einzelnen Spaltenüberschriften der Quelltabelle den passenden Spalten der Zieltabelle zuordnen. Die Ergebnisse sollten dann in einer neuen Tabelle mit dem Namen Zieltabelle.xlsx, so wie in der hochgeladenen Tabelle dargestellt, gespeichert werden.
Wenn man diese in der Maske einmal gemachten Zuordnungen (Quelltabelle zu Zieltabelle) dann noch irgendwie für jeden Lieferanten speichern könnte, wäre das super. Dann bräuchte ich die Zuordnungen bei erneuten Datenlieferungen nicht neu erstellen.

Wäre soetwas mir VBA möglich?

Viele Grüße

Bernd

Betrifft: AW: Tabellen in Zielstruktur überführen
von: Bernd
Geschrieben am: 26.09.2020 06:09:23

Hier kommen noch die Beispieldateien

https://www.herber.de/bbs/user/140447.xlsx
https://www.herber.de/bbs/user/140448.xlsx

Betrifft: AW: Tabellen in Zielstruktur überführen
von: Hajo_Zi
Geschrieben am: 26.09.2020 07:28:44

Hallo Bernd,

ich konnte in Deiner Datei nicht sehen wo der Fehler in Deinem Code ist.
Das liegt wohl daran das bei mir eine XLSX Datei kein Makro enthält,
Du solltest die Dateien als ZIP hochladen, damit die Dateinamen um Code mit den Dateinamen übereinstimmen.

GrußformelHomepage

Betrifft: AW: Tabellen in Zielstruktur überführen
von: Bernd
Geschrieben am: 26.09.2020 09:35:57

Hallo Hajo,

ich habe dazu leider noch keinen Code, weil ich keine Idee habe, wie ich das hinbekomme. Die Tabellen dienen nur zur Veranschaulichung, damit man sich vorstellen kann, wie die Tabellen aussehen, die von den Lieferanten kommen, bzw. wie die Zieltabelle aussehen soll.

Viele Grüße

Bernd

Betrifft: AW: Tabellen in Zielstruktur überführen
von: Bernd
Geschrieben am: 26.09.2020 09:35:58

Hallo Hajo,

ich habe dazu leider noch keinen Code, weil ich keine Idee habe, wie ich das hinbekomme. Die Tabellen dienen nur zur Veranschaulichung, damit man sich vorstellen kann, wie die Tabellen aussehen, die von den Lieferanten kommen, bzw. wie die Zieltabelle aussehen soll.

Viele Grüße

Bernd

Betrifft: AW: Tabellen in Zielstruktur überführen
von: Bernd
Geschrieben am: 26.09.2020 09:35:59

Hallo Hajo,

ich habe dazu leider noch keinen Code, weil ich keine Idee habe, wie ich das hinbekomme. Die Tabellen dienen nur zur Veranschaulichung, damit man sich vorstellen kann, wie die Tabellen aussehen, die von den Lieferanten kommen, bzw. wie die Zieltabelle aussehen soll.

Viele Grüße

Bernd

Betrifft: AW: Tabellen in Zielstruktur überführen
von: Herbert_Grom
Geschrieben am: 27.09.2020 12:46:33

Hallo Bernd,

die Struktur der beiden AM ist bei mir jedenfalls identisch. Vielleicht kannst du noch eineml exakt beschreiben, was du wo und wie hin haben willst.

Servus

Betrifft: AW: Tabellen in Zielstruktur überführen
von: Bernd
Geschrieben am: 27.09.2020 15:01:20

Hallo Herbert,
die Zieltabelle hat einen festen Aufbau und müsste genauso aussehen wie die Beispieltabelle. Das heißt, die Reihenfolge und die Bezeichnungen der einzelnen Tabellenblätter und auch die Reihenfolge und die Bezeichnungen der Spaltenüberschriften in den einzelnen Tabellenblättern sind fest. Die Eingangstabellen sind variabel, d.h., die Spaltenbezeichnungen und auch die Reihenfolge der Spalten variiert. In der Eingangstabelle können auch Spalten vorkommen, die ich in der Zieltabelle nicht benötige.

Ich müsste in der Maske die Spaltenüberschriften manuell den passenden Spaltenüberschriften der Zieltabelle zuordnen können. Nach erfolgter Zuordnung sollte dann die Zieltabelle entsprechend der Vorgaben gefüllt werden. Vielleicht lässt sich das über zwei Listboxen lösen. In einer Listbox werden alle Spaltenüberschriften der Eingangstabelle aufgeführt. In der zweiten Listbox werden alle Spaltenüberschriften der Zieltabelle aufgelistet. Wenn man in der ersten Listbox eine Spaltenüberschrit markiert und anschließend in der zweiten Listbox die passende Zielspalte angeklickt wird, sollte die markierte Spaltenüberschrit zugeordnet werden. Wenn in der zweiten Listbox noch eine zweite Spalte vorhanden wäre, in der die zugeordneten Spaltenüberschriften angezeigt werden, wäre das super.

Viele Grüße

Bernd

Betrifft: AW: Tabellen in Zielstruktur überführen
von: Bernd
Geschrieben am: 27.09.2020 19:02:06

Hallo Herbert,
die Zieltabelle hat einen festen Aufbau und müsste genauso aussehen wie die Beispieltabelle. Das heißt, die Reihenfolge und die Bezeichnungen der einzelnen Tabellenblätter und auch die Reihenfolge und die Bezeichnungen der Spaltenüberschriften in den einzelnen Tabellenblättern sind fest. Die Eingangstabellen sind variabel, d.h., die Spaltenbezeichnungen und auch die Reihenfolge der Spalten variiert. In der Eingangstabelle können auch Spalten vorkommen, die ich in der Zieltabelle nicht benötige.

Ich müsste in der Maske die Spaltenüberschriften manuell den passenden Spaltenüberschriften der Zieltabelle zuordnen können. Nach erfolgter Zuordnung sollte dann die Zieltabelle entsprechend der Vorgaben gefüllt werden. Vielleicht lässt sich das über zwei Listboxen lösen. In einer Listbox werden alle Spaltenüberschriften der Eingangstabelle aufgeführt. In der zweiten Listbox werden alle Spaltenüberschriften der Zieltabelle aufgelistet. Wenn man in der ersten Listbox eine Spaltenüberschrit markiert und anschließend in der zweiten Listbox die passende Zielspalte angeklickt wird, sollte die markierte Spaltenüberschrit zugeordnet werden. Wenn in der zweiten Listbox noch eine zweite Spalte vorhanden wäre, in der die zugeordneten Spaltenüberschriften angezeigt werden, wäre das super.

Viele Grüße

Bernd

Betrifft: AW: Tabellen in Zielstruktur überführen
von: Herbert_Grom
Geschrieben am: 28.09.2020 09:22:02

Hallo Bernd,

es tut mir leid, aber ich verstehe dich immer noch nicht! Du sprichst von linker und rechter Seite. Aber nicht "wo"? Nenne doch einfach die Spalten, was wo hin soll und nicht von "linker und rechter Seite"!

Mach doch mal ein manuelles Beispiel, welche Daten, aus welcher AM, in welche AM und welche Spalten sollen!

Servus

Betrifft: AW: Tabellen in Zielstruktur überführen
von: Bernd
Geschrieben am: 28.09.2020 21:07:12

Hallo Herbert,

in der Beispiel-Quell-AM gibt es 3 Tabellenblätter (Tabelle1, Tabelle2, Tabelle3). Die Tabellenblätter Tabelle2 und Tabelle3 sind in der Beispiel-Quell-AM leer. Im Tabellenblatt Tabelle1 gibt es die Spalten

EAN, Artikelnummer, Artikeltext1, Preisbasis, Preiseinheit, Preis, Bild, Sicherheitsdatenblatt und Produktdatenblatt.

In der Ziel-AM gibt es die 3 Tabellenblätter Artikelgrunddaten, Bilder und weitere Dokumente.

In der Ziel-AM sollen im Tabellenblatt Artikelgrunddaten die folgenden Spaltenüberschriften mit den zugehörigen Artikeln erscheinen:

EAN, Artikelnummer, Artikeltext1, Preisbasis, Preiseinheit, Preis

In der Ziel-AM sollen im Tabellenblatt Bilder die folgenden Spaltenüberschriften mit den zugehörigen Daten erscheinen:

EAN, Artikelnummer, Bild

In der Ziel-AM sollen im Tabellenblatt weitere Dokumente die folgenden Spaltenüberschriften mit den zugehörigen Daten erscheinen:

EAN, Artikelnummer, Sicherheitsdatenblatt, Produktdatenblatt

Das Problem besteht darin, dass die Quell-AM auch einen anderen Aufbau haben könnte. Die Spalten könnten also auch anders heißen oder anders angeordnet sein. Ich müsste daher eine Möglichkeit haben, anzugeben, wohin die einzelnen Spalten der Quell-AM gehören, quasi eine Art von Mapping.

Beispiel:
Der Artikeltext1 könnte in der Quellt-AM auch Kurztext heißen. Ich müsste jetzt irgendwo angeben können, dass die Spalte Kurztext dem Artikeltext1 entspricht und die Kurztexte in die Ziel-AM im Tabellenblatt Artikelgrunddaten unter der Spaltenüberschrift Artikeltext1 erscheinen sollen.

Viele Grüße

Bernd

Betrifft: AW: Tabellen in Zielstruktur überführen
von: Herbert_Grom
Geschrieben am: 29.09.2020 09:26:20

Hallo Bernd,

ich bin gestern leider nicht mehr dazu gekommen. Doch ich bin dran!

Servus