In Unterordnern nach Wert suchen und ersetzen (VBA)

Timo, Montag, 26.11.2018, 10:12 (vor 18 Tagen)

Hallo Zusammen,

ich suche nach einem Code für folgende Situation:


- Es gibt eine Masterliste, die aus mehreren Excel Dateien (gleicher Aufbau) zusammengeführt und als Kopie abgespeichert wird.

- In der Spalte A steht immer eine Zuordnungsnummer in Form von 100503,100510,100573..
- Zwischen Spalte "B-K" stehen noch andere Werte
und in Spalte "L" steht der Fortschritt, der entweder z.B. "OK" oder "nicht OK" ist.

Nun würde ich gerne in der Masterliste die Werte in "L" also "OK" oder "nicht OK" ändern und die sollen dann in den einzelnen Excel Dateien überschrieben werden.


Das Makro soll also (verdeckt) alle Excel-Dateien in einem Verzeichnis inkl. Unterordnern nach den Wert der A- Spalte (100503, 100510 z.b.) suchen und wenn dieser Wert gefunden wird den Wert von Spalte "L", in Spalte "L" der einzelnen Excel Datei übernehmen.

Ich habe schon im Netz geschaut aber irgendwie bisher nicht die richtige Lösung gefunden.
Vll. kann mir hier ja jemand helfen?

VG Timo

In Unterordnern nach Wert suchen und ersetzen

Martin Asal @, Montag, 26.11.2018, 14:58 (vor 17 Tagen) @ Timo

Ist denn in der Masterdatei ein Hinweis enthalten, aus welcher Rohdatei ein jeder Datansatz stammt? Das könnte entweder in einer separaten Spalte abgespeichert sein, oder sich vielleicht aus der Zuordnungsnummer ergeben. Wenn man nicht weiß, auf welche Datei man sich gerade bezieht, wird es kompliziert. Überhaupt scheint mir Excel für deine Zwecke kaum noch geeignet zu sein, sinnvoller wäre eine Datenbank wie z. B. Access.

Martin

In Unterordnern nach Wert suchen und ersetzen

Timo, Dienstag, 27.11.2018, 10:46 (vor 17 Tagen) @ Martin Asal

Guten Morgen Martin,

vielen Dank für deine Antwort!


In der "Masterdatei" ist kein Hinweis enthalten...
Die Excel Dateien werden von mehreren Benutzern (je Bereich, deswegen in verschiedenen Unterordnern) angelegt (immer der gleiche Aufbau, höchstens 40-50 Zeilen) und jeder arbeitet in seiner Excel-Datei/en...

Von diesen ganzen Excel-Dateien kann sich der Status, einzelner Zeilen, dann im Laufe des Tages, von "nicht okay" auf "okay" ändern.
Dazu ziehe ich mir die Dateien über die "Masterliste" in den Hintergrund, scanne die Zuordnungsnummer per Handscanner (über SVerweis zieht er mir dann die einzelnen Infos aus der Hintergrunddatei) und exportiere die Datei mit allen Positionen, die "okay" sind.
Das Ganze geschieht als Kopie, weil die Benutzer teilweise währenddessen in den Excel-Dateien arbeiten.

Nun ist es ja leider so, dass es eben keine Verknüpfung zu den Excel-Dateien gibt, aus diesem Grund wollte ich mit dem Makro nachmittags, wenn keiner mehr da ist und alle Dateien geschlossen sind, die Excel-Dateien "aktualisieren"....
Quasi soll er die Zuordnungsnummern der "Okay"-Datei in den Excel Dateien suchen und den Wert in der Zeile entsprechend von "nicht okay" auf "okay" anpassen oder die ganze Zeile anpassen, da es aufgrund des gleichen Aufbaus keinen Unterschied macht...

Ist wahrscheinlich alles etwas umständlich...

In Access kenne ich mich leider echt nur minimal aus und nicht jeder hat Zugriff darauf...
Aber vll. gibt ist es ja da die Möglichkeit alle Excel-Dateien aus den Unterordnern als Verknüpfung zu ziehen und diese dann mit der "Okay"-Liste zu aktualisieren bzw. die Werte zu ersetzen?

-Also sowas wie, ziehe alle Excel- Dateien als Verknüpfung aus dem Ordner C:/Bereich1/Daten, C:/Bereich2/Daten, C:/Bereich3/Daten zusammen....
nur Tabelle 1, auf Tabelle 2 und 3 sind noch weitere Infos) und ab Zeile3 weil in Zeile 1 und 2 Überschriften stehen

-Ersetze die Werte durch den Inhalt der Okay-Liste aus
C:/Alle Bereiche/Okayliste_27_11_2018.xls und speicher die Excel- Dateien.


Kannst du mir verraten, ob vll. sowas möglich ist?


VG Timo

In Unterordnern nach Wert suchen und ersetzen

Martin Asal @, Dienstag, 27.11.2018, 20:45 (vor 16 Tagen) @ Timo

Hallo Timo,

wennn man in der Mastertabelle nicht mal erkennen kann, zu welcher Unterdatei ein bestimmter Datensatz gehört, wird das echt ein Krampf. Ich vermute mal, dass wenigstens die Zuordnungsnummer eindeutig ist, und zwar über alle Dateien hinweg? Dann könnte man per Code wie folgt vorgehen:

1. Alle Unterdateien öffnen. Wenn doch noch eine von einem anderen User geöffnet ist, hast du ein Problem

2. Eine Schleife, die Zeile für Zeile durch die Mastertabelle geht (Siehe die Prozedur "Erledigt" unter Applikationen/Excel), und dann jede Zuordnungsnummer in einer Unterdatei nach der anderen suchen.

3. Die Unterdateien speichern und schließen.

Die obengenannte Beispielprozedur solltest du auf jeden fall mal ausprobieren, das geht ja ungefähr dahin, was dir vorschwebt.

Ist aber ein Krampf. Besonders, wenn man bedenkt, dass tagsüber verschiedene Leute gleichzeitig an den Tabellen arbeiten. Excel ist nun mal nicht mehrbenutzerfähig, un dletztlich entstehen durch die Festlegung auf Excel innerbetrieblieche Reibungsverluste.

Wie gesagt, mit einer Datenbank wie Access wäre das kein Problem. Seit etlichen Accessversionen wird auch eine kostenlose Runtimeversion mitgeliefert, mit der User auf eine Accessdatenbank zugreifen können, ohne darin entwickeln zu können.

Falls du dich noch nicht mit Access auskennst, empfehle ich dir das Acccess-Tutorial.

Martin

RSS-Feed dieser Diskussion
powered by my little forum