Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Makro für alle Dateien eines Ordners ausführen

Makro für alle Dateien eines Ordners ausführen
01.03.2018 22:28:09
Susi
Hallo Masterminds!
Leider habe ich noch keinen passenden Beitrag gefunden und ich steh mit meinen Kenntnissen am Ende.
Ich versuche mein Problem so gut es geht zu veranschaulichen:
Ich habe einen Ordner „c:\Regal1“ und dieser enthält 300 Dateien „Buch1.xlsm“, „Buch2.xlsm“ ect., die alle gleich aufgebaut sind, nur andere Werte enthalten.
Und es gibt einen zweiten Ordner „c:\Regal2“, der enthält auch 300 Dateien „Schachtel1.xlsm“, „Schachtel2.xlsm“ ect.
In jeder Schachteldatei ist ein Pfad zu einer Buchdatei (Anmerkung: keine annähernd identen Dateinamen).
Außerdem hab ich ein Makro „Bibliothekar“, welches Daten (jedes Mal dieselben Zellen) aus der Buchdatei in die Schachteldatei kopiert.
Ich bin auf der Suche nach einem Makro „Arbeitsanweisung“, welches für jede Schachteldatei im Ordner „c:\Regal2“ das Makro „Bibliothekar“ ausführen soll. Kann mir da jemand weiterhelfen?
Ich möchte vermeiden jedes Mal händisch die Schachteldatei zu öffnen, das Makro „Bibliothekar“ hineinzukopieren und auszuführen, da das bei der Menge der Dateien leider ewig dauert und in Zukunft auch noch öfter vorkommen kann.
Das Makro „Bibliothekar“ habe ich mir mit Hilfe zusammenbasteln können. Kann ich leider erst morgen früh hier reinkopieren.
Vielleicht hat ja schon wer einen Tipp! Ich bin für alles dankbar!
Liebe Grüße,
Susi
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Makro für alle Dateien eines Ordners ausführen
02.03.2018 00:56:20
Hajo_Zi
Hallo Susi,
was nun Ausführen?
Oder kopieren?
Zum Code Änderung muss Zugriff auf das VBA Projekt zugelassen werden.
Da dies tief in die Sicherheit geht, gebe ich dazu keine Auskunft.

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung....."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben,
mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Anzeige
AW: Makro für alle Dateien eines Ordners ausführen
02.03.2018 01:30:00
Rainer
Hallo Susi,
warum musst du denn das Makro kopieren, um es auszuführen?
Du kannst doch mit "ThisWorkbook" und "ActiveWorkbook" zwischen den Mappen wechseln.
Also "ThisWorkbook" wäre indeinem Fall "Arbeitsanweisung". Dies muss dann nacheinander alle Dateien öffnen. Neu geöffnete Dateien sprichst du mit "ActiveWorkbook" an.
Gruß,
Rainer
Anzeige
AW: Makro für alle Dateien eines Ordners ausführen
02.03.2018 10:24:22
Susi
Danke, das mit ThisWorkbook und ActiveWorkbook war schon ein guter Tipp!
Mein "Bibliothekar" ist allerdings das hier:

Sub Bibliothekar()
Set main1 = ThisWorkbook.Sheets("Tabelle3") 'Schachteldatei
Set main2 = ThisWorkbook.Sheets("Tabelle1") 'Schachteldatei
Set wbbasis = Workbooks.Open(main1.Cells(1, 2).Value) 'Buchdateipfad in Schachtel
Set wsbasis1 = wbbasis.Sheets("Tabelle1") 'Buchdatei
wbbasis.IsAddin = True
main2.Unprotect Password:="123"
wsbasis1.Range("K9:K20").Copy 'Buch
main2.Range("K9:K20").PasteSpecial xlPasteFormulas 'Schachtel
main2.Protect Password:="123"
End Sub

So und daraus versuch ich das Makro "Arbeitsanweisung" zu machen:

Sub Arbeitsanweisung()
Dim strDatnam As String
Dim wb As Workbook
Dim strPfad As String
Dim main1 As String
strPfad = "C:\regal2\"
strDatnam = Dir(strPfad & "*.xlsm")
Do While strDatnam  ""
Set wb = Workbooks.Open(strPfad & strDatnam)
With Workbooks(strDatnam)
Set main1 = Workbooks(strDatnam).Sheets("Tabelle3")
Set main2 = Workbooks(strDatnam).Sheets("Tabelle1")
Set wbbasis = Workbooks.Open(main1.Cells(1, 2).Value)
Set wsbasis1 = wbbasis.Sheets("Tabelle1")
wbbasis.IsAddin = True
main2.Unprotect Password:="123"
wsbasis1.Range("K9:K20").Copy
main2.Range("K9:K20").PasteSpecial xlPasteFormulas
main2.Protect Password:="123"
End With
wb.Close savechanges:=True
strDatnam = Dir
Loop
Set wb = Nothing
End Sub
Bei set main1 hängt sichs auf. Wie sag ich ihm denn das richtig?
Danke!
Susi
Anzeige
AW: dim as Object
02.03.2018 10:53:21
Fennek
Hallo,
der Code

Dim main1 As String
Set main1 = Workbooks(strDatnam).Sheets("Tabelle3")
muss in einen Fehler laufern, da ein Sheet als "Object" dimensioniert werden muss.
Versuche
Dim main1 as Object
mfg
AW: dim as Object
02.03.2018 12:42:36
Susi
Dankeschön!
Habe noch
Dim main1 As Object
Dim main2 As Object
Dim wbbasis As Object
Dim wsbasis1 As Object
hinzugefügt und jetzt rennts :)
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige