Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

UNC

  • UNC von Thomas vom 06.11.2020 07:40:17
Betrifft: UNC von: Thomas
Geschrieben am: 06.11.2020 07:40:17


Hallo Excelfreunde,

ich möchte gern den UNC Pfad einer Datei auslesen.

Ich habe einen normalen Datei Pfad in der Zelle P1 zu stehen.

(P:\Admin\aktueller_Ordner\forum3.xlsb)

Diesen ermittle ich mit

Dim strDatei, wks As Worksheet
strDatei = Application.GetOpenFilename
If strDatei <> False Then
'Set wks = Workbooks.Open(strDatei).Sheets(1)
Tabelle1.Range("p1") = strDatei
Else
Exit Sub
End If

Da sich aber ständig die Laufwerksbuchstaben ändern möchte ich gern mit den UNC Pfad arbeiten.

Dazu habe ich diesen Code gefunden. (ohne API)

Dim fso As Object, sLWB As String, sServer As String
Set fso = CreateObject("Scripting.FileSystemObject")
sLWB = fso.GetDriveName(Tabelle1.Range("p1"))
sServer = fso.getdrive(sLWB).ShareName
Tabelle1.Range("q1") = sServer
Debug.Print sServer
MsgBox sServer
Set fso = Nothing

Dieser liefert mir schon mal den halben Pfad z.b. \\Server\Arbeitsbereiche.
Ich benötige jedoch den Kompletten Pfad mit Dateiname z.b.

\\Server\Arbeitsbereiche\\Admin\aktueller_Ordner\forum3.xlsb

Diesen möchte ich dann gern in die Zelle Q1 schreiben

Kann mir jemand dabei behilflich sein?

https://www.herber.de/bbs/user/141358.xlsb

MFG Thomas

Betrifft: UNC
von: Anton
Geschrieben am: 06.11.2020 09:49:12

Hallo Thomas,

probier's hiermit:

Sub b()
  Dim strDatei
  strDatei = Application.GetOpenFilename  
  If strDatei = False Then Exit Sub    
  Tabelle1.Range("p1") = strDatei
  With CreateObject("Scripting.FileSystemObject").getdrive(Left(strDatei, 2))  
    If .DriveType = 3 Then  
      Tabelle1.Range("q1") = .ShareName & Mid(strDatei, 3)
    Else
      Tabelle1.Range("q1") = "Datei nicht vom Netzlaufwerk!"
    End If  
  End With  
End Sub  

mfg Anton

Betrifft: Anton peerfekt
von: Thomas
Geschrieben am: 06.11.2020 11:52:11

Hallo Anton,

es funktioniert perfekt.

hab riesen dank.

Und ein vor allem Gesundes Wochenende.


mfg thomas