45754
Goto Top

Excel Makro muss alle Dateien im Ordner durchlaufen

Hallo zusammen!

Ich bräuchte ein Excel Makro, dass mir aus jeder XLS Datei (Dateiname ansonsten unbekannt), die in dem Unterordner c:\Input liegt, jeweils die Werte A1; B2;C3 holt und schön spaltenweise in eine Zieldatei c:\ziel.XLS schreibt.

Mit einer Datei kein Problem, aber wie sieht die Schleife aus um durch alle Dateien in einem Ordner zu laufen, wenn die Anzahl und der Dateiname bis auf die Endung .xls nicht bekannt ist?

Vielen Dank für eure Hilfe

Content-Key: 58175

Url: https://administrator.de/contentid/58175

Printed on: April 19, 2024 at 12:04 o'clock

Member: bastla
bastla May 04, 2007 at 05:55:54 (UTC)
Goto Top
Hallo tooltime!

Eine Möglichkeit wäre das "FileSystemObject" von VBScript:
Const sSourcePath As String = "D:\Daten"  
Dim fso as Object, oFile as Object
Set fso = CreateObject("Scripting.FileSystemObject")  
For Each oFile In fso.GetFolder(sSourcePath).Files
    If LCase(Right(oFile.Name, 4)) = ".xls" Then  
        Application.Workbooks.Open (oFile.Path)
        ...
        ...
    End If
Next

Grüße
bastla
Mitglied: 45754
45754 May 04, 2007 at 07:36:46 (UTC)
Goto Top
TOP! Vielen Dank face-smile

Das funktioniert in soweit, ...

nur kommt bei meinen Dateien sowohl beim Öffnen von Hand als auch mit Makro folgende Fehlermeldung:

Diese Datei enthält Verknüpfungen zu anderen Dateiquellen
...blabla ...dann die Auswahl:
Aktualisieren ............................ Nicht aktualisieren ........................Hilfe

Ich würde natürlich gerne "Nicht aktualisieren" wählen und das automatisch, aber das Makro zeigt mir auch beim Weg MAKRO AUFZEICHNEN keinen Weg diese Fehlermeldung automatisch beantworten zu lassen.

Habt ihr Ideen?
Mitglied: 45754
45754 May 04, 2007 at 07:53:05 (UTC)
Goto Top
Lösung geb ich mir gleich selbst:

UpdateLinksAtOpen = True

Die Frage ist nur warum

- True = Nicht aktualisieren
- False = aktualisieren

ist (für mich wäre es umgekehrt logischer) ??

..und ja ich bin mir sicher und hab es schon 5 x ausprobiert ;)