Registriert seit: 30.04.2018
Version(en): 2013
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
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• DEAAHMA4
Registriert seit: 30.04.2018
Version(en): 2013
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 ?
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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)
Registriert seit: 30.04.2018
Version(en): 2013
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:\......'"
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
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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)