Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Datei über VBA-Makro öffnen
Frage
Hallo zusammen
vielleicht eine "dumme" Frage...
ich möchte in einem Makro eine bestimmte Datei öffnen:
Workbooks.Open Filename:="D:\daten\XXX.xls", ReadOnly:=True
ist es möglich, die Datei auch ohne genaue Verzeichnis-Angabe zu öffnen?
Ich möchte das Makro an verschiedene Mitarbeiter verteilen, weiß aber nicht unbedingt, in welchem Verzeichnis/(Unter-)Ordner die Datei lokal gespeichert ist.
Was würde passieren, wenn es zwei Dateien mit gleichem Namen an unterschiedlichen Orten gibt?
Dankeschön schon mal für die Hilfe
Gruß
Andreas
Antwort 1 von kicia
Hallo Andreas,
ich bin kein Excelspezialist, aber ich denke:
das Macro muß auf jeden Fall wissen, wo die Datei liegt.
Also entweder muß der Anwender das Verzeichnis angeben
(zB. mit
oder das Verzeichnis muß vorgegeben sein,
oder Du müsstest relativ aufwendig eine Funktion schreiben, die nach der Datei sucht,
oder Du mußt eine andere Datei an einem vorgegebenen Ort abspeichern, in der steht, wo die xls Datei liegt.
Ich mache das in meiner Firma so, daß ich für mein Tool im Ordner
An den Verzeichnisnamen kommst Du in Excel mit
ich bin kein Excelspezialist, aber ich denke:
das Macro muß auf jeden Fall wissen, wo die Datei liegt.
Also entweder muß der Anwender das Verzeichnis angeben
(zB. mit
Verzeichnisnamen = InputBox("Verzeichnisnamen eingeben", "Abfrage"))oder das Verzeichnis muß vorgegeben sein,
oder Du müsstest relativ aufwendig eine Funktion schreiben, die nach der Datei sucht,
oder Du mußt eine andere Datei an einem vorgegebenen Ort abspeichern, in der steht, wo die xls Datei liegt.
Ich mache das in meiner Firma so, daß ich für mein Tool im Ordner
C:\Dokumente und Einstellungen\<AnwenderName>\Anwendungsdaten\<FirmenName>\<ToolName> eine Datei speichere, in der alles nötige steht.An den Verzeichnisnamen kommst Du in Excel mit
Environ("USERPROFILE") & "\Anwendungsdaten\..."Antwort 2 von nighty
hi all :-)
ein beispiel :-)
gruss nighty
verzeichnistiefe sollte nicht zu hoch sein
ein beispiel :-)
gruss nighty
verzeichnistiefe sollte nicht zu hoch sein
Sub FilesListen()
Dim Dateien As Integer
Dim DateiName As String
With Application.FileSearch
.NewSearch
.LookIn = "D:\Musik\Interpret\"
.SearchSubFolders = True
.Filename = "DeinDateiname.xls"
If .Execute() > 0 Then
For Dateien = 1 To .FoundFiles.Count
DateiName = Dir(.FoundFiles(Dateien))
If DateiName <> ThisWorkbook.Name Then
Workbooks.Open Filename:=.FoundFiles(Dateien)
Workbooks(DateiName).Close
End If
Next Dateien
End If
End With
End Sub
