HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv

Beiträge zum Thread: VBA Pfad über Namensbereich weitergeben

Forumbeitrag
Excel-Version des Fragestellers:
365 Business
Erfahrungslevel des Fragestellers:
Kaum Excel/VBA-Kenntnisse
Boerjon
29.06.2026 11:20:35
VBA Pfad über Namensbereich weitergeben
Guten Tag,

ich habe ein VBA-Script um Excel-Lieferscheine als PDF abzugelegen.
Das lief über mehrere Jahre zuverlässig.

Private Sub CommandButton1_Click()

Dim pdfDateiName As String
Dim pdfName As Variant
ChDrive "G:\"
ChDir "\PDF Kopien\"
pdfDateiName = ActiveSheet.Range("G26") & "_" & Range("C2") & ".pdf"
pdfName = Application.GetSaveAsFilename(InitialFileName:=pdfDateiName, FileFilter:="PDF files, *.pdf", Title:="PDF speichern")
If pdfName <> False Then
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfDateiName, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True
Else
Exit Sub
End If
End Sub

Jetzt kam von unserer IT nachfolgender Hinweis:

"Ich möchte bitte keine festen Pfade mehr im VBA-Code hinterlegen.
Den Pfad (Netzlaufwerk) bitte künftig auf einem Tabellenblatt mit einem Namesbereich für „Servername“ hinterlegen.
Das kann in VBA simpel als ChDir [Servername] abgebildet werden. Das verwendet dann den Text/Wert der in diesem Zellenbereich hinterlegt ist."


Leider erhalte ich durch die IT keine weitere Hilfestellung, da diese für "User VBA-Codes" nicht zuständig sind.

Also meine Vorgehensweise:
Auf Tabellenblatt1 in Zelle "C1" mit Namensmanager einen Namensbereich "Servername" erstellt.
den Pfad "G:\Test\" in "C1" hinterlegt:

Private Sub CommandButton1_Click()

Dim pdfDateiName As String
Dim pdfName As Variant
ChDir [SERVERNAME]
. . . . .

Leider wird nicht der hinterlegten Pfad geöffnet, es öffnet sich statt dessen immer "Eigene Dateien".
Was mach ich falsch ?

Viele Grüße

Forumbeitrag
Excel-Version des Fragestellers:
365 Business
Erfahrungslevel des Fragestellers:
Kaum Excel/VBA-Kenntnisse
Ulf
29.06.2026 11:38:00
AW: VBA Pfad über Namensbereich weitergeben
Hi,
sollte ~

    Dim strPfad As String

Dim strLaufwerk As String

strPfad = ThisWorkbook.Names("Servername").RefersToRange.Value
strLaufwerk = Left(strPfad, 2)

ChDrive strLaufwerk
ChDir strPfad
MsgBox Dir("*.*")


hth
Ulf
Forumbeitrag
Excel-Version des Fragestellers:
365 Business
Erfahrungslevel des Fragestellers:
Kaum Excel/VBA-Kenntnisse
Boerjon
29.06.2026 12:21:20
AW: VBA Pfad über Namensbereich weitergeben
Vielen Dank für die schnelle Hilfe, das funktioniert soweit super !

Wenn ich in "C1" statt einen Pfad mit Laufwerksbuchstaben die Serveradresse direkt hinterlege
also \\SV00123DC456\public$\Test\ kommt Laufzeitfehler 5.

Lässt sich der direkte Serverzugriff auch irgendwie abbilden ?

Hintergrund: Wenn jemand nicht "G:\" als Laufwerksbuchstabe des Netzlaufwerkes hat würde es nicht funktionieren

Es grüßt freundlich

Forumbeitrag
Excel-Version des Fragestellers:
365 Business
Erfahrungslevel des Fragestellers:
Kaum Excel/VBA-Kenntnisse
daniel
29.06.2026 12:38:30
AW: VBA Pfad über Namensbereich weitergeben
Hi
hier merkst du das Alter von VBA.
ChDir funktioniert nur mit vorgeschaltetem ChDrive und ChDrive benötigt den einfachen Laufwerksbuchstaben, also das was du gemapped hast.

Ein anderer Weg, einen Dateinamen auszuwählen ist Application.Filedialog
Das muss etwas aufwendiger programmiert werden, aber du kannst auch ein Serververzeichnis vorgeben.

Meine KI-Suchmaschine liefert mir dazu folgenden Beispielcode:

Sub OpenFileWithFileDialog()

Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)

' Startverzeichnis voreinstellen (kann auch eine Serveradresse sein)
fd.InitialFileName = "\\server\freigabe\"

' Optional: Dateifilter setzen
fd.Filters.Clear
fd.Filters.Add "Excel-Dateien", "*.xlsx; *.xls"
fd.Filters.Add "Alle Dateien", "*.*"

' Dialog anzeigen
If fd.Show = -1 Then
' Ausgewählte Datei ausgeben
MsgBox "Ausgewählte Datei: " & fd.SelectedItems(1)
Else
MsgBox "Keine Datei ausgewählt."
End If
End Sub


Gruß Daniel
Forumbeitrag
Excel-Version des Fragestellers:
365 Business
Erfahrungslevel des Fragestellers:
Kaum Excel/VBA-Kenntnisse
Ulf
29.06.2026 13:08:43
AW: VBA Pfad über Namensbereich weitergeben
Hi,
sollte auch ohne Auswahl des Verzeichnisses arbeiten können~

    Dim pdfDateiName As String

Dim pdfName As Variant

Dim strPfad As String

strPfad = ThisWorkbook.Names("Servername").RefersToRange.Value
pdfDateiName = strPfad & "\" & ActiveSheet.Range("G26") & "_" & Range("C2") & ".pdf"
pdfName = Application.GetSaveAsFilename(InitialFileName:=pdfDateiName, FileFilter:="PDF files, *.pdf", Title:="PDF speichern")

hth
Ulf
Forumbeitrag
Excel-Version des Fragestellers:
365 Business
Erfahrungslevel des Fragestellers:
Kaum Excel/VBA-Kenntnisse
Boerjon
29.06.2026 14:24:34
AW: VBA Pfad über Namensbereich weitergeben
@Daniel
Danke für die Zusendung, leider muss hier der Pfad wieder im VBA hinterlegt werden, was Seitens der IT nicht (mehr) gewollt ist

@Ulf
Vielen Dank, der Code funktioniert super

Es grüßt freundlich
Forumbeitrag
Excel-Version des Fragestellers:
365 Business
Erfahrungslevel des Fragestellers:
Kaum Excel/VBA-Kenntnisse
daniel
29.06.2026 15:33:31
AW: VBA Pfad über Namensbereich weitergeben
Danke für die Zusendung, leider muss hier der Pfad wieder im VBA hinterlegt werden, was Seitens der IT nicht (mehr) gewollt ist

unsinn. das ist ja nur der Beispielcode.
du kannst hier dann Stelle, wo das Verzeichnis angegeben ist, statt dem fixen Text genauso die Referenz auf eine Zelle oder einen Namen angeben (also die eckigen Klammern). das funktioniert genauso
Forumbeitrag
Excel-Version des Fragestellers:
365 Business
Erfahrungslevel des Fragestellers:
Kaum Excel/VBA-Kenntnisse
Marc
30.06.2026 18:42:16
AW: VBA Pfad über Namensbereich weitergeben
na ja mit Error GOTO arbeiten, wenn er das NEtzlaufwerk nicht findet, wird sonst immer ein Fehler kommen