Das Archiv des Excel-Forums
Alle Dateien in einem Unterordner öffnen
Betrifft: Alle Dateien in einem Unterordner öffnen
von: David
Geschrieben am: 12.09.2019 12:57:59
Hallo zusammen,
folgender Sachverhalt:
In meinen eigenen Dokumenten habe ich einen Unterordner "Test".
In diesen Ordner kommen Dateien rein, welche schreibgeschützt sind.
Nun wurde bisher immer, wenn alle Dateien in dem Ordner abgelegt sind, jede einzelne Datei geöffnet und manuell ein Makro abgerufen, welches den Schreibschutz wieder entfernt, damit man die Dateien bearbeiten kann.
Nun zu meiner Frage:
Gibt es einen Code, welcher sagt, öffne Datei 1 unter Pfad "C:\Users\m\Documents\Test", rufe Makro Blattschutz_entfernen () auf, speichere die Datei ab und öffne Datei 2. So sollte im Idealfall alles durchlaufen, bis jede Datei wieder entsperrt ist.
Kann mir damit jemand weiterhelfen?
Vielen Dank!
David
Betrifft: AW: Alle Dateien in einem Unterordner öffnen
von: 1712673.html
Geschrieben am: 12.09.2019 13:06:30
Hallo David,
versuch mal:
Sub test2()
Application.ScreenUpdating = False
Dim Pfad As String, Datei As String
Pfad = "C:\Users\m\Documents\Test\"
Datei = Dir(Pfad & "*.xlsx") 'wenn xlsx Dateien
Do While Datei <> ""
Workbooks.Open Filename:=Pfad & Datei
With Workbooks(Datei)
Application.Run Workbooks(Datei) & "'!Blattschutz_entfernen"
End With
Datei = Dir()
Loop
End Sub
Gruss Torsten
Betrifft: AW: Alle Dateien in einem Unterordner öffnen
von: 1712674.html
Geschrieben am: 12.09.2019 13:07:16
hallo,
sowas wurde schon 100x gefragt.
Sub aaa()
dim strfile as string, wkb as workbook
strfile=dir("C:\Users\m\Documents\Test\*.xlsx")
do while strfile <>""
set wkb=workbooks.open(C:\Users\m\Documents\Test\" &strfile
call Blattschutz_entfernen
wkb.close true
strfile=dir
loop
End Sub
Gruß
Rudi
Betrifft: AW: Alle Dateien in einem Unterordner öffnen
von: 1712675.html
Geschrieben am: 12.09.2019 13:09:29
Hallo,
Application.Run Workbooks(Datei) & "'!Blattschutz_entfernen"
Die Prozedur steht mit Sicherheit nicht in Workbooks(Datei), da es eine .xlsx ist.
Gruß
Rudi
Betrifft: AW: Alle Dateien in einem Unterordner öffnen
von: 1712677.html
Geschrieben am: 12.09.2019 13:10:25
Oh Hab vergessen zu schliessen. Sorry.
Sub test2()
Application.ScreenUpdating = False
Dim Pfad As String, Datei As String
Pfad = "C:\Users\torsten.wetzel\Downloads\"
Datei = Dir(Pfad & "*.xlsx") 'wenn xlsx Dateien
Do While Datei <> ""
Workbooks.Open Filename:=Pfad & Datei
With Workbooks(Datei)
Application.Run Workbooks(Datei) & "'!Blattschutz_entfernen"
.Close savechanges:=True
End With
Datei = Dir()
Loop
End Sub

Betrifft: AW: Alle Dateien in einem Unterordner öffnen
von: 1713635.html
Geschrieben am: 18.09.2019 12:25:11
Hallo Torsten,
sorry für die späte Antwort, aber funktioniert wunderbar!
Nun wollte ich mal noch fragen, gibt es eine Möglichkeit, dass man quasi einen "Oberordner" angibt in welchen dann mind. ein Unterordner sich befindet, ggf. hat dieser Unterordner auch nochmals Unterordner. Nun soll das Makro genau das selbe machen, also sprich
C:\Users\m\Documents\Test (Oberordner) öffnen, dann den ersten Unterordner C:\Users\m\Documents\Test\Test 2 öffnen, dort alle Datein öffnen, Makro laufen lassen und anschließend abspeichern.
Daraufhin soll Unterordner 3, C:\Users\m\Documents\Test\Test 3 geöffnet werden.
Hier gibt es bspw. einen Unterordner 4, C:\Users\m\Documents\Test\Test 3\Test 4, in welchem sich dann die Dateien befinden. Dort soll wieder das Procedere mit Makro abrufen, abspeichern etc. ablaufen.
Sprich nochmals zusammengefasst:
Es gibt einen Oberordner, C:\Users\m\Documents\Test,in welchem sich 3 Unterordner befinden.
Diese 3 Unterordner bestehen jeweils auch oftmals aus weiteren Unterordnern, aber in manchen sind auch die Dateien direkt in dem Unterordner abgelegt.
Das Makro soll also nun alle 3 Unterordner mit sämtlichen weiteren Ordnern darin durchackern, die Dateien öffnen, das Makro "Blattschutz" abrufen, abspeichern und schließen.
Ich hoffe es war einigermaßen verständlich formuliert :)
Vielen Dank!
Gruß,
David

Betrifft: AW: Alle Dateien in einem Unterordner öffnen
von: 1713964.html
Geschrieben am: 19.09.2019 19:23:24
Hallo Torsten,
habe nun mal den Code umgeschrieben, da die finalen Dateien mit Makros abgespeichert sind, also sprich .xlsm.
Datei = Dir(Pfad & "*.xlsx") 'wenn xlsx Dateien
Datei = Dir(Pfad & "*.xlsm") 'wenn xlsx Dateien
Funktioniert allerdings irgendwie nicht.
Wenn ich den Code in einzel Schritten durchgehe, springt der Code von
Do While Datei <> ""
zu End Sub direkt.
Und zu meiner Frage mit den verschiedenen Pfaden der Unterordner:
Eigentlich könnte ich doch alle Pfade in einer Excelübersicht auflisten (A1,B1,C1,...) und der Code ruft sich bei:
Pfad = "C:\Users\torsten.wetzel\Downloads\"
quasi hinten immer den nächsten Wert aus der Liste. Sprich er beginnt in A1, fügt den Pfad ein, lässt alles durchrattern, geht dann auf B1 usw.
Hoffe auch das ist verständlich formuliert.
Gruß,
David
Excel-Beispiele zum Thema "Alle Dateien in einem Unterordner öffnen"
Alle Dateien im Verzeichnis öffnen |
 |
Dateien listen |
 |
400 leere Textdateien anlegen |
 |
XL-Dateien in UserForm listen |
 |
XL5/7-Dateien nach XL8 konvertieren |
 |
Dateien aus Listbox auslesen und öffnen |
 |
Excel-Dateien eines Ordners listen |
 |
Alle Dateien ab einem bestimmten Datum listen |
 |
Alle Dateien eines Verzeichnisses drucken |
 |
Textdateien verbinden |
 |
Serie von Dateien in das XL5/7-Format konvertieren |
 |
Verzeichnisbaum aufrufen und Dateien in ListBox auflisten |
 |
Dateien einer Ordnerliste in einer Tabelle zusammenstellen |
 |
Daten aus allen Dateien eines Verzeichnisses zusammenführen |
 |
Hyperlinks zu allen Excel-Dateien eines Verzeichnisses erstellen |
 |
Dateien in einem Verzeichnis und Unterverzeichnissen suchen |
 |
XL-Dateien aus Haupt- und Unterverzeichnissen einlesen |
 |
Die Eigenschaft "Stichwort" in allen Dateien eines Ordners ändern |
 |
Textdateien vergleichen und Unterschiede dokumentieren |
 |
Löschen von Dateien beim Schließen einer Arbeitsmappe |
 |
Grafikdateien suchen |
 |
Erste Blätter aus allen Dateien eines Verzeichnisses sammeln |
 |
Von allen Arbeitsblättern der Mappe HTML-Dateien anlegen |
 |
Textdateien auslesen und in Werte in Zellen eintragen |
 |
Werte nach Gruppen aufteilen und in gesonderten Dateien speichern |
 |
Fragen aus Textdateien in UserForm-Label einlesen |
 |
Text in Textdateien suchen und Fundzeilen in Tabelle ausgeben |
 |
Alle Dateien löschen, die älter als 30 Tage sind |
 |
Dateien mit Angabe des Dateidatums mit Hyperlink listen |
 |
Dateien listen und gekennzeichnete öffnen |
 |
UserForm-TextBoxes-Texte in Textdateien speichern |
 |
Tabellenblattinhalte in getrennten Textdateien speichern |
 |
Dateien listen und Blätter in neue Arbeitsmappe kopieren |
 |
Bei Doppelklick Textdateien in Editor öffnen |
 |
Dateiliste mit allen xl-Dateien und Hyperlinks erstellen |
 |
Aufruf von Textdateien protokollieren |
 |
Textdateien mit einer Zeile in Tabelle einlesen |
 |
Alle Textdateien eines Verzeichnisses importieren |
 |
Dateien öffnen, Verknüpfungen aktualisieren, speichern, schießen |
 |
Dateien suchen |
 |
Dateien mit bestimmtem Inhalt suchen |
 |
Web-Seiten mit Excel95 öffnen |
 |
Arbeitsmappe mit dem Namen des aktuellen Datums öffnen |
 |
Fußzeilen beim Öffnen eintragen |
 |
Arbeitsmappe ohne Rückfrage nach Aktualisierung öffnen |
 |
Datei öffnen, deren Name in einer Zelle steht |
 |
Beim Öffnen neue Symbolleiste |
 |
Symbolleisten beim Öffnen aus-, beim Schließen einblenden |
 |
Geburtstagsmeldung bei Öffnen der Arbeitsmappe |
 |
Beim Öffnen einer Arbeitsmappe WAV-Datei abspielen |
 |
Bei Doppelklick Ordner im Explorer öffnen |
 |
Beim Öffnen einer Arbeitsmappe neues Symbol in Formatsymbolleiste |
 |
Beim Öffnen der Arbeitsmappe bedingt Datum eintragen |
 |
Tabelle mit der jeweils nächsten Kalenderwoche öffnen |
 |
Arbeitsmappe öffnen, erstes Blatt drucken, Mappe schließen |
 |
Alle Arbeitsmappen eines Verzeichnisses öffnen |
 |
Datei auswählen, öffnen und Formelsuchdialog anzeigen |
 |
Midi-Datei beim Öffnen einer Arbeitsmappe abspielen |
 |
Vorlage auswählen und Arbeitsmappe öffnen |
 |
Aktuelle Geburtstage beim Öffnen der Arbeitsmappe anzeigen |
 |
Beim Öffnen der Arbeitsmappe eine UserForm anzeigen |
 |
Beim Öffnen Menüleiste anlegen und auf "ganzen Bildschirm" schalten |
 |
Beim Öffnen zweites Fenster erzeugen und anordnen |
 |
Beim Öffnen der Arbeitsmappe Passwort abfragen |
 |
Bei Öffnen Standardschriftgröße prüfen und Zoom festlegen |
 |
Passwortgeschützte Mappe öffnen, Daten kopieren, schliessen |
 |
Arbeitsmappe 5 Sekunden nach dem Öffnen speichern und schließen |
 |
Prüfung, welche Zellen nach Öffnen verändert wurden |
 |
Terminmeldung beim Öffnen der Arbeitsmappe |
 |
Beim Öffnen der Arbeitsmappe Email versenden |
 |
Beim Öffnen PowerPoint starten und danach Mappe aktivieren |
 |
Beim Öffnen einer Arbeitsmappe erstes Blatt auswählen |
 |
Bei Doppelklick gelinkte Arbeitsmappe öffnen |
 |
CD-Laufwerk öffnen und schließen |
 |
Dateistrukturen in UserForm einlesen und Datei öffnen |
 |
Datei entsprechend der Eingabe des Dateinamens öffnen |
 |
Dateinamen in UserForm-ComboBox einlesen und Datei öffnen |
 |
Arbeitsmappe öffnen und nach Beenden des Mausklicks schließen |
 |
Das in einem Gültigkeitfeld ausgewählte Word-Dokument öffnen |
 |
Access-Datenbank öffnen und deren Makro starten |
 |
Bei jedem Öffnen der Arbeitsmappe Wert um 1 erhöhen |
 |
Beim Öffnen Dialog mit Dateiname und Dateidatum |
 |
Beim Öffnen der Arbeitsmappe Menü-ComboBoxes anlegen |
 |
Webseite öffnen und eine Schaltfläche mit Makro hinzufügen |
 |
Meldung beim Öffnen und bei Zellauswahl in Spalte A |
 |
Warten, bis eine Datei geschlossen wird, dann öffnen |
 |
Excel-Arbeitsmappe aus dem Internet öffnen und verschieben |
 |
Download und Öffnen einer Arbeitsmappe |
 |
Beim Öffnen der Arbeitsmappe Bestellnummer eintragen |
 |