Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Bestimmte Dateien öffnen und Makro ausführen

Bestimmte Dateien öffnen und Makro ausführen
23.11.2006 16:47:03
Peter
Guten Abend
Ich habe in einem Folder verschiedene Dateien, in deren Namen der String "Erfassungstool" enthalten ist und andere Dateien.
Nun möchte ich aus einem anderen Excel-File einen Makro starten, der mir die Dateien, die den String "Erfassungstool" enthalten öffnen, dann eine bestimmte Aktion ausführen (zum Beispiel dem Namen "_JAHR" die Zahl "2007" zuordnen, die Datei speichern und schliessen.
Wie kann die Dateien in einem Ordner selektiv öffnen, bearbeiten und schliessen?
Danke für eine Rückmeldung.
Peter

Sub DatenUpdaten()
Dim aBook As Workbook
Dim aSheet As Worksheet
Dim zNr As Long
solange nicht alle Dateien abgearbeitet wurden
DATEI OEFFNEN
Set aBook = ThisWorkbook
Set aSheet = aBook.ActiveSheet
NAMEN neuen WERT ZUORDNEN
Datei speichern und schliessen
End Sub

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bestimmte Dateien öffnen und Makro ausführen
23.11.2006 17:03:14
UweD
Hallo
bin schon auf dem Sprung..
Deshalb hier ein Ansatz um nur diese Dateien abzuarbeiten.
Rest... speichern unter usw. mußt du noch selbst austüfteln...

Sub alle_Dateien_Verzeichnis() '
Dim Pfad$, Ext$, Datei$
Pfad = "C:\Temp\" 'Pfad des Verzeichnisses ggf. anpassen
Ext = "*Erfassungstool*.xls"       'Dateiextension ggf. anpassen
If Pfad = "" Then
Exit Sub
Else
Datei = Dir(Pfad & Ext)
Do While Len(Datei) > 0
Workbooks.Open Filename:=Pfad & Datei
'mach was damit
Workbooks(Datei).Close SaveChanges:=False
Datei = Dir() ' nächste Datei
Loop
End If
End Sub

Gruß UweD
(Rückmeldung wäre schön)
Anzeige
AW: Bestimmte Dateien öffnen und Makro ausführen
24.11.2006 08:47:06
Peter
Hallo Uwe
Vielen Dank für den Input.
Die Auswertung der Codezeile "Datei = Dir(Pfad & Ext)" ergibt nichts "", so dass das Makro jeweils beendigt wird.
Im entsprechenden Ordner sind unter anderem die Dateien Erfassungstool_1.xls, Kopie von Erfassungstool_1.xls und Kopie (2) von Erfassungstool_1.xls enthalten.
Da bin ich ziemlich am Ende meines Lateins - kann mir da jemand weiterhelfen?
Danke
Peter
Option Explicit

Sub alle_Dateien_Verzeichnis() '
Dim Pfad$, Ext$, Datei$
Pfad = Application.ThisWorkbook.Path
Debug.Print Pfad
'Pfad = "C:\Temp\" 'Pfad des Verzeichnisses ggf. anpassen
Ext = "*Erfassungstool*.xls"       'Dateiextension ggf. anpassen
Debug.Print Ext
If Pfad = "" Then
Exit Sub
Else
Datei = Dir(Pfad & Ext)
Debug.Print Datei
Do While Len(Datei) > 0
Workbooks.Open Filename:=Pfad & Datei
'mach was damit
Sheets("Tabelle1").Activate
Range("A1").Value = "Danke"
Workbooks(Datei).Close SaveChanges:=True
Datei = Dir() ' nächste Datei
Loop
End If
End Sub

Anzeige
AW: Bestimmte Dateien öffnen und Makro ausführen
24.11.2006 09:27:24
UweD
Hallo Peter
Du hast die Zeile 'Pfad = "C:\Temp\"'
auskommentiert.
Dann kann nichts gefunden werden.
Ich habe die 3 Dateien, die du genannt hast in c:\temp\ erzeugt und das makro läuft wunderbar.
Übrigens auf activate und select kann meist verzichtet werden...

Sub alle_Dateien_Verzeichnis() '
Dim Pfad$, Ext$, Datei$
Pfad = Application.ThisWorkbook.Path
Debug.Print Pfad
Pfad = "C:\Temp\" 'Pfad des Verzeichnisses ggf. anpassen
Ext = "*Erfassungstool*.xls"       'Dateiextension ggf. anpassen
Debug.Print Ext
If Pfad = "" Then
Exit Sub
Else
Datei = Dir(Pfad & Ext)
Debug.Print Datei
Do While Len(Datei) > 0
Workbooks.Open Filename:=Pfad & Datei ' Diese Datei ist dann die aktive
'mach was damit
Sheets("Tabelle1").Range("A1").Value = "Danke"
Workbooks(Datei).Close SaveChanges:=True
Datei = Dir() ' nächste Datei
Loop
End If
End Sub

Gruß UweD
(Rückmeldung wäre schön)
Anzeige
ich nochmal
24.11.2006 09:31:07
UweD
Hallo
habe gerade erst gesehen, das du weiter oben den Pfad ausliest.
Wenn deine Datei noch nicht gespeichert ist, dann ist ThisPath noch ""
Gruß UweD
(Rückmeldung wäre schön)
AW: ich nochmal
24.11.2006 10:31:58
Peter
Hallo Uwe
Das Problem liegt nicht bei der Variable Pfad (die habe ich mit debug.print abgefragt), sondern bei der Zeile
Datei = Dir(Pfad & Ext)
die Variable Datei enthält keinen Wert (durch Abfrage Debug.Print Datei festgestellt), obschon sowohl der die Variable Pfad und Ext mit Debug.print einen Wert ausgeben.
Gruss, Peter
Anzeige
jetzt hab ichs...
24.11.2006 11:53:37
UweD
Hallo nochmal
Ursache: der Backslash am Ende fehlt..
so gehts...
Pfad = Application.ThisWorkbook.Path & "\"
Gruß UweD
(Rückmeldung wäre schön)
AW: jetzt hab ichs...
24.11.2006 12:00:44
Peter
Hallo Uwe
Jetzt läufts wie geschiert !!
Danke, Peter
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
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