Excel VBA: unbeliebige Anzahl an Excel-Dateien mit gleichem Inhalt an variablen Zellen und variabler Länge nach dem gleichen Muster durchsuchen und kopieren?

...komplette Frage anzeigen

1 Antwort

Einige Fragen zurück:

Was ist Ausgangsbasis für die Ermittlung? Hast Du eine Liste der Artikelnummern? Kann jede Artikelnummer in jeder Datei theoretisch stehen oder kann man das irgendwie eingrenzen? Wie Du es formuliert hast, klingt es eher so, dass man in der Datei irgendwie erkennen soll, was eine Artikelnummer ist. Dann bräuchte es aber eine konkrete Definition als Nummern mit Buchstaben und Bindestrichen

Ist die Artikelnummer immer gleich in den Zellen eingetragen? Kann man also den kompletten Zellinhalt vergleichen oder steht in der gleichen Zelle vor/nach der Artikelnummer noch andere Informationen, so dass man nach einem Teil suchen muss?

Haben die Dateien, die zu durchsuchen sind, einheitlich aufgebaute Überschriften? Wenn nicht: Steht innerhalb einer Datei die Artikelnummer zumindest einheitlich in einer Spalte? Dann reicht es aus je Datei einmalig zu ermitteln welche Spalte es ist und nicht für jede Artikelnummern einzeln.

Diese 10-60 Zeilen je Datei: Prüft man zeilenweise, ob die Artikelnummer enthalten ist und kopiert dann jeweils oder ist das komplizierter aufgebaut?

Wenn die Spalten je Datei unterschiedlich sind: Soll dann wirklich die gesamte Zeile zusammenkopiert werden? In der Ergebnisdatei passen dann ja die Spalten definitiv nicht mehr

Hallo Ninombre,

Danke für Deine Antwort.

Ja, in der Tat kann ich programmtechnisch nicht definieren, was eine Artikelnummer ist. Die Artikelnummern stehen alle in der Spalte "Artikelnummer" und sind alle in einer Spalte organisiert. An sich sind die Dokumente alle gleich aufgebaut: "Artikelnummer", "Artikelbezeichnung", "Artikelkurztext" die eigentlich prinzipiell immer in Spalte A,B und C organisiert sind.

Manche haben jedoch eine Spalte "Position" vor "Artikelnummer" eingefügt oder "Artikelkurztext" einfach gelöscht.

Ich möchte jedoch den oberen und unteren Teil nicht mit kopieren, denn oben stehen kleine Paragraphen und unten sind Unterschriften aufgeführt, die auswertungstechnisch nicht relevant sind. Ich benötige von dieser Datei: "Artikelnummer", "Artikelbeschreibung", "Artikelkurztext". Egal in welche Spalte diese organisiert sind.

Diese Daten müssen in die Zieldatei, in der der Code ausgeführt wird, kopiert werden.

Es ist Egal, ob die Daten zusammengehörig, zeilenweise oder spaltenweise kopiert werden. Leider kann ich keine Originaldaten zur Verfügung stellen :-(

0
@Yake66

hmm, ob man das stabil hinbekommt, weiß ich noch nicht.

Wenn man nach den Überschriften gehen kann, ist das schon mal hilfreich. Die jeweilige Spalte der Überschrift lässt sich mit
artnr = WorksheetFunction.Match("Artikelnummer", Range("A1:Z1"), 0)

ermitteln. Nur: gibt es immer nur ein Tabellenblatt je Datei oder muss man die auch durchwühlen, welches davon möglicherweise das richtige ist?

Sind die Zeilen, bei denen die Artikelnummer gefüllt ist, dann an einem Stück, d.h. reicht es aus, wenn man die erste Zeile mit Artikelnummer und die letzte ermittelt und den Bereich dazwischen kopiert?

0

Die Datei besteht immer nur aus einer Tabelle. Wenn die Tabelle z.B aus 60 benutzen Zeilen besteht muss man evtl nur 25 Zeilen kopieren. Diese 25 sind zusammengehörig untereinander und fängt z.B in Zeile 15 an und hört in Zeile 40 auf. Die oberen 15 sind Dokumenttitel u.ä. Und unteren 20 für eine Unterschrift vorgesehen. Kannst du mir hierfür eine Lösung oder Vorgehensweise definieren?

0

Was möchtest Du wissen?