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

Forumthread: Pfad festlegen

Pfad festlegen
13.09.2017 11:02:26
stef26
Guten Tag liebe Excelprofis,
ich bräuchte mal eure Hilfe.
Ich möchte ein Dialogfenster öffnen.
Dies soll dann bereits auf dem Pfad stehen, der in VerzeichnisAlt festgelegt wurde.
VerzeichnisAktiv = ThisWorkbook.Sheets("Setup").Range("B2")
VBA.ChDrive "I:"
VBA.ChDir VerzeichnisAlt 'Verzeichnis setzen
vAuswahl = Application.Dialogs(xlDialogOpen).Show
Bisher hat das immer super funktioniert.
Nun habe ich aber keinen Laufwerksbuchstaben mehr.
Nun kann ich VBA.ChDrive "I:" nicht mehr ausführen.
Ohne dies stellt er sich aber nicht auf den richtigen Pfad.
Kann mir jemand sagen, wie ich das lösen kann, damit sich das Dialogfenster auf den richtigen Pfad stellt.
Mit nur der Pfadangabe "\\ad005.onehc.net\..." macht er dies leider nicht ?
Gruß
Stefan
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Pfad festlegen
13.09.2017 11:37:49
Luschi
Hallo Stefan,
was hat 'VBA.ChDrive "I:"' mit 'VerzeichnisAlt' zu tun. Ich nehme an, das in 'VerzeichnisAlt' auch der Laufwerksbuchstaben enthalten ist; deshalb so:
VBA.ChDrive Left(VerzeichnisAlt, 1)
VBA.ChDir VerzeichnisAlt
Gruß von Luschi
aus klein-Paris
AW: Pfad festlegen
13.09.2017 12:43:18
stef26
Hallo Luschi,
danke für deine Antwort.
Verzeichnis in der er wechseln soll: "\\ad005.onehc.net\dfs005\Custom\ usw..."
Meine XLS liegt in der das Dialogfenster aufgerufen wird liegt unter C: irgendwo
Nun möchte ich das er beim öffnen das ausgewählte Verzeichnis öffnet, was er leider nicht macht.
Da dies nicht sauber funktionierte hat man mir damals den Tip gegeben erst mal mit VBA.ChDrive den richtigen Laufwerksbuchstaben auszuwählen.
Dann hatte es funktioniert.
Nun ist es aber so, dass ich keinen Laufwerksbuchstaben mehr habe, sondern einen Namen "Custom".
Somit kann ich kein VBA.ChDrive ausführen.
Deinen Vorschlag mit left geht deshalb leider nicht.
Weil der Name Custom er hier dann auf C springen würde.
Kann ich auch ohne VBA.ChDrive einen Pfad aufrufen, wenn dieser nicht auf dem Laufwerksbuchstaben liegt?
Gruß
Stefan
Anzeige
AW: Pfad festlegen
13.09.2017 14:58:04
JoWE
Hallo,
versuchs mal damit:
Private Declare Function SetCurrentDirectoryA Lib "kernel32" _
(ByVal lpPathName As String) As Long
Function SetUNCPath(sPath As String) As Long
Dim lReturn As Long
lReturn = SetCurrentDirectoryA(sPath)
SetUNCPath = lReturn
End Function
Sub Get_Data()
Dim sPath As String
sPath = "\\ad005.onehc.net\dfs005\Custom\"
SetUNCPath (sPath)
MsgBox CurDir
vAuswahl = Application.Dialogs(xlDialogOpen).Show
End Sub
Gruß
Jochen
Anzeige
Benutz den Pfad als Argument...
13.09.2017 15:10:05
EtoPHG
Hallo Steff,
Das Wechseln ist nicht nötig. Einfach den Pfad als erstes Argument übergeben:
vAuswahl = Application.Dialogs(xlDialogOpen).Show(Arg1:="\\ad005.onehc.net\")

Gruess Hansueli
AW: Benutz den Pfad als Argument...
13.09.2017 15:29:20
stef26
Super Hansueli,
du hast mir den Tag gerettet. Genau so läufts.
Danke auch an alle die mich hier unterstützt haben
:-)
Stefan
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Dialogfenster in Excel auf einen bestimmten Pfad setzen


Schritt-für-Schritt-Anleitung

Um ein Dialogfenster in Excel VBA zu öffnen, das direkt auf einem bestimmten Pfad steht, kannst du folgende Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf dein Projekt im Projekt-Explorer und wähle Einfügen > Modul.

  3. Füge den folgenden Code ein:

    Private Declare Function SetCurrentDirectoryA Lib "kernel32" _
    (ByVal lpPathName As String) As Long
    
    Function SetUNCPath(sPath As String) As Long
       Dim lReturn As Long
       lReturn = SetCurrentDirectoryA(sPath)
       SetUNCPath = lReturn
    End Function
    
    Sub Get_Data()
       Dim sPath As String
       sPath = "\\ad005.onehc.net\dfs005\Custom\"
       SetUNCPath (sPath)
       MsgBox CurDir
       vAuswahl = Application.Dialogs(xlDialogOpen).Show
    End Sub
  4. Führe den Code aus: Starte das Makro Get_Data, um das Dialogfenster zu öffnen.


Häufige Fehler und Lösungen

  • Fehler: Laufwerksbuchstabe nicht verfügbar
    Wenn du keinen Laufwerksbuchstaben mehr hast, wird der VBA.ChDrive Befehl nicht funktionieren. Stattdessen kannst du den UNC-Pfad direkt verwenden. Der Code von Jochen (oben) ist eine gute Lösung.

  • Fehler: Dialog öffnet nicht im gewünschten Verzeichnis
    Stelle sicher, dass der Pfad korrekt ist und du die richtigen Berechtigungen für das Verzeichnis hast.


Alternative Methoden

Eine einfachere Methode, den Pfad direkt zu übergeben, besteht darin, den Pfad als Argument im Dialogfenster zu verwenden:

vAuswahl = Application.Dialogs(xlDialogOpen).Show(Arg1:="\\ad005.onehc.net\dfs005\Custom\")

Dies umgeht das Problem mit VBA.ChDrive vollständig und öffnet das Dialogfenster direkt im gewünschten Verzeichnis.


Praktische Beispiele

Hier sind zwei Beispiele, wie man den Dialog öffnen kann:

  1. Mit SetCurrentDirectory:

    Sub OpenDialogWithSetCurrentDirectory()
       SetUNCPath "\\ad005.onehc.net\dfs005\Custom\"
       vAuswahl = Application.Dialogs(xlDialogOpen).Show
    End Sub
  2. Mit Argumentübergabe:

    Sub OpenDialogWithArgument()
       vAuswahl = Application.Dialogs(xlDialogOpen).Show(Arg1:="\\ad005.onehc.net\dfs005\Custom\")
    End Sub

Beide Methoden sind effektiv, je nach deinem spezifischen Anwendungsfall.


Tipps für Profis

  • Verwende UNC-Pfade: Wenn möglich, arbeite mit UNC-Pfaden anstelle von Laufwerksbuchstaben, um Komplikationen zu vermeiden.
  • Fehlerbehandlung einbauen: Implementiere Fehlerbehandlung in deinem VBA-Code, um unerwartete Situationen elegant zu managen.
  • Testen: Teste deinen Code in verschiedenen Umgebungen, da Zugriffsrechte und Netzwerkverbindungen variieren können.

FAQ: Häufige Fragen

1. Kann ich den Pfad dynamisch ändern?
Ja, du kannst den Pfad dynamisch ändern, indem du ihn z.B. aus einer Zelle in Excel liest.

2. Funktioniert das auch in Excel 2016?
Ja, die genannten Methoden funktionieren in Excel 2016 und höher. Stelle sicher, dass du die richtigen Berechtigungen für den Zugriff auf Netzlaufwerke hast.

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