Clever-Excel-Forum

Normale Version: VBA Netzwerpfad verwenden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Code:
ChDrive "L:"
ChDir "L:\c\d\e\f\g"



MsgBox ("aktuelle SAP-Sammelauswertung auswählen")

NeueDateipfad_Sammeldatei = Application.GetOpenFilename(FileFilter:="Microsoft Excel-Dateien (*.xlsx), *.xlsx", title:="b")                      ' Datei auswählen
If NeueDateipfad_Sammeldatei = False Then MsgBox "Der Upgrade vorgang wurde abgebrochen!", vbInformation, "Information": Exit Sub  ' bei Abbruch




Set Sammeldatei = Workbooks.Open(NeueDateipfad_Sammeldatei, ReadOnly:=True)


Hallo Zusammen,

ich brauche eine Möglichkeit direkt auf einen Netzwerkpfad zuzugreifen.

Bei Application.GetopenFilename soll dann der angegebene Pfad schonmal vorausgewählt sein. Das wäre beim Beispiel Code der Fall.

Ich möchte nicht das  Laufwerk L verwenden. L ist voreingestellt als \\stchwint\a\b
Code:
ChDrive "L:"
Code:
ChDir "L:\c\d\e\f\g"


Sonder direkt den Netzwerkpfad in etwa so, aber das funktioniert nicht.

Code:
ChDir "\\stchwint\a\b\c\d\e\f\g"


Oder auch direkt auf die Datei in diesem Pfad zugreifen. Aufjedenfall nur mit dem Netzwerkpfad nicht mit irgendwelchen Laufwerkbuchstaben.

Dank euch
Hallo,
Sub yxc()
With Application.FileDialog(msoFileDialogFilePicker)
.InitialFileName = "\\stchwint\a\b\c\d\e\f\g\"
.Filters.Add "Microsoft Excel-Dateien", "*.xlsx", 1
If .Show Then
Set Sammeldatei = Workbooks.Open(.SelectedItems(1), ReadOnly:=True)
Else
MsgBox "Der Upgrade vorgang wurde abgebrochen!", vbInformation, "Information"
End If
End With
End Sub
Gruß Uwe
Hallöchen,

ich arbeite auch gerne mit den UNC-Pfaden aber man könnte alternativ auch die UNC-Pfade aller angebundenen Laufwerke prüfen und dadurch den richtigen Laufwerksbuchstaben feststellen. Im Prinzip so

Code:
Option Explicit

'Fuer UNC Aufloesung
Private Declare Function WNetGetConnection Lib "mpr.dll" _
                                           Alias "WNetGetConnectionA" (ByVal lpszLocalName As String, _
                                                                       ByVal lpszRemoteName As String, _
                                                                       cbRemoteName As Long) As Long
Sub test()
Dim objFSO As Object, strDrive As Object
Set objFSO = CreateObject("Scripting.filesystemobject")
For Each strDrive In objFSO.drives
    If strDrive.isready Then MsgBox strDrive.path & vbTab & GetUNCName(strDrive.path)
Next
End Sub
'-----------------------------------------------------------------
Public Function GetUNCName(ByVal path As String) As String
    Dim UNC As String * 512
    If Left(path, 2) = "\\" Then
        GetUNCName = path
        Exit Function
    End If
    If Len(path) = 1 Then path = path & ":"
    If Right(path, 1) <> "\" Then path = path & "\"
    If WNetGetConnection(Left(path, 2), UNC, Len(UNC)) Then
        GetUNCName = ""
    Else
        GetUNCName = Left(UNC, InStr(UNC, vbNullChar) - 1) & Mid(path, 3)
    End If
End Function
Hallo André,

Deine Antwort hatte mit der Frage nicht direkt etwas zu tun. Wink
Wenn ich die Zuordnung sehen will, nutze ich in der Eingabeaufforderung (cmd) den Befehl net use.

Gruß Uwe
Moin Uwe,

Zitat:Deine Antwort hatte mit der Frage nicht direkt etwas zu tun.
zuweilen nimmt man den UNC Pfad nur deswegen, weil x user auf y Rechnern ihre Laufwerke unterschiedlich anbinden. Für den Fall könnte man alternativ auch den Laufwerksbuchstaben ermitteln

Zitat:Wenn ich die Zuordnung sehen will, nutze ich in der Eingabeaufforderung (cmd) den Befehl net use.
ich wollte das direkt ins vba übernehmen Smile
Danke euch Beiden. Kuwers-Variante war die passende. Die andere ist mir zu kompliziert :D. Trotzdem vielen Dank :)