Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
920to924
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
920to924
920to924
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Unterordner bei Makro berücksichtigen

Unterordner bei Makro berücksichtigen
26.10.2007 15:22:00
Andre
Hallo liebe VBA Gemeinde,
ich habe das Problem, dass ich einen Makro brauche, der immer die gleiche Änderung in einem Sheet ausführt. Das Sheet hat immer den gleichen Namen, beinhaltet aber andere Daten und liegt jeweils in einem unterschiedlich benannten Ordner. Bsp.: Haus1/workbook1.xls dann Haus2/workbook1.xls etc.
Ich muss dort jeweils Formate ändern oder in jeweils der gleichen Zelle eine Formel einfügen und möchte eben vermeiden, alle Sheets einzeln aufmachen zu müssen.
In einem anderen Thread hat jemand mal ein ähnliches Problem beschrieben und auch schon jemand eine Lösung angeboten. Leider kann ich das Script nicht vervollständigen.
Vielen Dank für eure Hilfe.
Andre
Hallo Zusammen,
da ich in der letzten Zeit tolle Unterstützung erfahren habe, wäre ich super-dankbar, wenn sich noch einmal jemand einem neuen Problem von mir annehmen würde ;-)
Das u.g. Skript öffnet, bearbeitet und schließt in einem bestimmten Ordner alle Excel-Dateien und verändert einen gewünschten String; ich hätte jedoch gerne, dass neben dem Ordner auch ALLE Unterordner nach Excel-Dateien durchsucht werden; das würde meine Sache sehr erleichtern.
Würde mich freuen, wenn es Vorschläge gäbe...
Herzlichen Dank,
Grüße,
Alexander

Sub GRAN_TOURISMO()
Dim f$, p$, i&
p = "C:\Ordner\"
f = Dir(p & "*.xls")
i = 1
Do While f  ""
Workbooks.Open Filename:=p & f
For Each w In Workbooks
If w.Name  ThisWorkbook.Name Then
For Each ws In Worksheets
ws.Columns().Replace _
What:="Flughafen", Replacement:="airport", _
SearchOrder:=xlByColumns, MatchCase:=False
Next ws
w.Close savechanges:=True
End If
Next w
i = i + 1: f = Dir
Loop
End Sub


Hio...
Nimm das Application Filesearch Objekt, da kannst du Seach Subfolders = True setzen...
Beispiel hier
***********************************************************************
c0bRa verweist auf ein anderes Forum, in dem die Lösung an einem anderen Beispiel gezeigt wird. Leider reichen meine VBA Kenntnisse nicht aus, dies miteinander zu kombinieren.
Gruß
Andre

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
DIR kann keine Unterordner ermitteln
26.10.2007 15:41:10
NoNet
Hallo Andre,
nur ein Ansatz : Mit DIR() kann man nicht Dateien und Unterverzeichnisse unterscheiden.
Dazu wäre eine Lösung per FileSystemObject passender. Einen Ansatz dazu findest Du in meinem Beispiel aus dem Spotlight-Forum. Dieser Code listet alle Dateien auf (alternativ könnte man diese auch öffnen und bearbeiten) :
http://spotlight-wissen.de/lisp/pages/messages/amse-1125750066-32075
Alternativ funktioniert auch die Methode per FileSearch, hier ein Beispiel :

'* DEMO (Word+Excel) zum Öffnen, Bearbeiten, Schließen aller    *
'* Dateien eines bestimmten Dateityps eines bestimmten Ordners. *
'* Erstellt am : 10.01.2007 von NoNet - www.excelei.de          *
Sub AlleDateienAbarbeiten()
Dim Pfad, Dateien, AktuelleDatei
Dateien = "Dat*.xls" ' hier den Dateityp anpassen !
'Dateien = "*.txt" ' Für Excel: *.txt Dateien durchsuchen
Pfad = "C:\Temp" 'Hier das Verzeichnis anpassen, das durchsucht werden soll
With Application.FileSearch
.LookIn = Pfad
.SearchSubFolders = True
.Filename = Dateien
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
AktuelleDatei = .FoundFiles(i)
'MsgBox AktuelleDatei 'Dateinamen der Datei ausgeben
'BearbeitenWord AktuelleDatei 'Datei mit WORD öffnen und Bearbeiten
BearbeitenExcel AktuelleDatei 'Datei mit Excel öffnen und Bearbeiten
Next i
End If
End With
End Sub
Sub BearbeitenExcel(Dateiname)
Workbooks.Open Dateiname
MsgBox Dateiname
'Hier weitere Bearbeitungsschritte
Workbooks(Split(Dateiname, "\")(UBound(Split(Dateiname, "\")))).Close False 'Datei schließ _
en
End Sub


Gruß, NoNet

Anzeige
AW: DIR kann keine Unterordner ermitteln
26.10.2007 15:47:00
Andi
Hi,
FileSearch wird von XL2007 nicht mehr unterstützt.
Schönen Gruß,
Andi

AW: Bitte Version Beachten
26.10.2007 15:53:00
Hajo_Zi
Hallo NoNet,
Andi benutzt Version 2007, da gibt es kein Application.FileSearch

Stimmt, das habe ich diesmal übersehen ;-) _oT
26.10.2007 15:57:00
NoNet
_oT

AW: DIR kann keine Unterordner ermitteln
26.10.2007 16:57:49
Andre
Hallo NoNet,
ich hab den Makro mal ausprobiert aber Excel sagt: Laufzeitfehler 445 - Objekt unterstützt diese Aktion nicht und verweist beim Debugger auf die Zeile
With Application.FileSearch
Wat nu?
Gruß
Andre

Wird nicht mehr unterstützt?
26.10.2007 17:00:00
Andre
Sorry, hab nicht auf Refresh gedrückt.
Heißt das, dass ich den Makro aber ohne Probleme auf einer alten Excel Version laufen lassen kann? Das ist kein Prob. Alte Sachen haben wir hier jede Menge. lol.
Gruß und Danke
Andre

Anzeige
Ja, bis Excel 2003 funktioniert "FileSearch" _oT
26.10.2007 17:01:00
NoNet
_oT

zu
26.10.2007 22:06:35
zu
zu

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige