Verknüpfung erstellen mit UNC - Pfad
#1
Hallo liebe Forenmitglieder,

ich bin auf ein Problem gestoßen, dass ich alleine nicht lösen kann und im Netz finde ich keine passenden Anhaltspunkte.

Das ist das Ziel:

Werte aus x - vielen Excel-Datenblättern (=Quelldatei) in einer Übersicht in einer weiteren Excel-Datei (=Zieldatei) darstellen.

Das ist das Szenario: die Quelldateien befinden sich auf gemappten Laufwerken, jeder User hat dem Laufwerk natürlich einen anderen Namen gegeben und damit entsteht ein Problem.

Problem: in der Zieldatei kommt es zu Fehlermeldungen, dass die Daten nicht gezogen werden können, weil der Pfad nicht stimmt, da beim verknüpfen Excel standardmäßig den relativen Pfad nutz.

Lösungsansatz: ich wollte in der Zelle der Zieldatei, wo der relative Dateipfad der Quelldatei steht, mit dem UNC-Pfad ersetzen. Ich habe über die Schnellansicht die Funktion gefunden mit den UNC-Pfad anzeigen zu lassen. Ersetze ich den relativen Namen mit dem UNC-Pfad, kommt es zu Fehlermeldungen, dass dieser Pfad nicht gültig sei.

Hat jemand eine Idee, wie ich das Problem lösen kann ?

Beste Grüße
Asif
Top
#2
Hallöchen,

eventuell müsstest Du beim Öffnen der Datei das Laufwerk feststellen, unter dem der UNC-Pfad gemappt ist, und das dann in den Formeln ersetzen.
Könnte aber auch sein, dass das nicht ausreicht, wenn die Verbindung in verschiedene Pfadtiefen geht, z.B.
D:\Meine.xlsx
E:\irgendwo\meine.xls
Dann müsste man noch den Pfad prüfen.

Das mit den Laufwerken geht z.B. so, damit bekommst Du den Laufwerksbuchstaben und kannst ihn zum Ersetzen verwenden.

Code:
' alle verfügbaren Laufwerke ermitteln
Private Function fso_MyDrive() As String
'Late Binding:
Dim objFSO As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
'Early Binding:
'mit Verweis auf Microsoft Scripting Runtime
'Dim objFSO As Scripting.FileSystemObject
'Set objFSO = New Scripting.FileSystemObject
'Dim oDrive As Scripting.Drive
'Late Binding:
Dim oDrive As Object
Dim strVolume As String
  ' alle Laufwerke durchlaufen
  For Each oDrive In objFSO.Drives
    With oDrive
      ' Laufwerksbuchstabe + Volume-Name
      If .IsReady Then
        ' Falls es sich um ein Netzlaufwerk handelt, soll
        ' der ShareName verwendet werden
        If .DriveType = 3 Then
          If InStr(1, LCase(.ShareName), "\\server002\freigabe1") Or _
            InStr(1, LCase(.ShareName), "\\server02.meinefirma.de\freigabe1") Then
            If strVolume = "" Then
              strVolume = .DriveLetter & ":" & .ShareName
            ElseIf InStr(1, LCase(.ShareName), "freigabe1) Then
              strVolume = .DriveLetter & ":" & .ShareName
            End If
          End If
        End If
      End If
    End With
  Next
  fso_MyDrive = strVolume
End Function
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • DEAAHMA4
Top
#3
Hallo schauan,

vielen Dank für die Info. Allerdings denke ich, dass das Problem bei mir liegt und ich den Pfad einfach falsch beschreibe.
Ein relativer Pfad sieht z.B. so aus:

[blabla.xlsx]Reiter1!$E$5

Ich denke mir, dass ich doch den Ausdruck in der eckigen Klammer 1:1 ersetzen muss mit dem UNC - Pfad, so dass die Adressierung doch dann so aussehen müsste (wobei mir gerade aufgefallen ist, dass Leerzeichen in diesem Pfad sind, habe jetzt copy&paste gemacht und den Pfad mit Fantasiewörtern ersetzt; Leerzeichen usw. sind die selben):

\\Server\bla\bla\rhabarbar mit   Erdebeeren\Nachtisch für\alle gibt's\heute umsonst\blabla.xlsx

so dass der Pfad am Ende:

[\\Server\bla\bla\rhabarbar mit   Erdebeeren\Nachtisch für\alle gibt's\heute umsonst\blabla.xlsx]Reiter1!$E$5

sein sollte ?
Top
#4
Hallöchen,

hast DU denn schon mal versucht, einen UNC-Pfad in einer Formel zu verwenden?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#5
Das Problem, den Pfad richtig zu schreiben, habe ich hinbekommen, dass war ein Fehler bei mir.

Ja genau damit habe ich es probiert. Obwohl ich bei Excel über diesen bekannten Trick, absolute Pfad zu sichern und nicht relative, ändert sich die Adresse.
Aus dem UNC - Pfad "\\servername\... wird wieder "'Y:\......'" Huh

Oder spielt das keine Rolle und es wird mir nur so angezeigt und der nutzt trotzdem den UNC - Pfad (=absoluter Pfad(?) ? Ich möchte nur vermeiden, dass ein anderer Nutzer, der diese Übersichtsdatei benutzt nicht mit fehlerhaften Quellangaben konfrontiert ist.

Vielen Dank schon mal für die Hilfe 
Asif
Top
#6
Hallöchen,

darauf wollte ich eigentlich hinaus. UNC in Formeln geht nicht. Du müsstest es entweder mit dem Code versuchen oder die Kollegen dazu bringen, das Netzlaufwerk überall gleich anzubinden.
Das könntest Du eventuell mit einer kleinen Batch performen, mit net use ... Da hätten die Kollegen weniger aufwand beim Verbinden ... Allerdings könnte es da Probleme mit vorhandenen Anbindungen geben, wenn Du den gleichen Laufwerksbuchstaben verwendest.
Ich habe bei uns z.B. für allgemeine Zwecke Standard-Verbindungen festgelegt und für individuelle Befindlichkeiten müssen die Kollegen andere Laufwerksbuchstaben wählen. Macht auch die Kommunikation leichter, wenn alle von den gleichen Buchstaben sprechen ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste