Anzeige
Archiv - Navigation
1872to1876
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Lokaler Pfad einer Sharepoint Datei

Lokaler Pfad einer Sharepoint Datei
14.03.2022 10:09:33
Frank
Hallo allerseits,
wie kann ich denn bei einer Excel-Datei den lokalen Speicherort einer mit Sharepoint synchronisierten Datei auslesen?
Ich habe jetzt schon sowohl das Forum, als auch Google durchsucht, finde aber nichts passendes.
Konkretes Beispiel:
Dim strPath As String
strPath = ActiveWorkbook.FullName [da wird dann "https://xxx.sharepoint.com/xxx" eingelesen]
ActiveWorkbook.SaveAs Filename:=strPath & "x" _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
Kill strPath
Komischerweise funktioniert
ActiveWorkbook.SaveAs Filename:=strPath einwandfrei, die Fehlermeldung kommt bei Kill strPath "Laufzeitfehler '53': Datei nicht gefunden"
Mit Replace kann ich leider nicht arbeiten, da wir in der Firma sehr viele Sharepoints haben und das Makro auch bei mehreren Usern funktionieren soll.
Vielen Dank im Voraus!
Grüße
Franky

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Lokaler Pfad einer Sharepoint Datei
14.03.2022 10:49:37
Frank
Hallo Chris,
das bringt mich leider nicht weiter, da wir keinen ftp-Zugang haben. Der zweite Link bringt mir auch nichts, da der Pfad jedesmal anders ist. Ich bräuchte tatsächlich eine Methode, wie ich strPath = ActiveWorkbook.FullName anpasse, um den lokalen Pfad anzugeben.
Grüße
Franky
Anzeige
AW: Lokaler Pfad einer Sharepoint Datei
14.03.2022 11:02:02
ChrisL
Hi Franky
Ich denke das Problem ist, dass Kill in Zusammenhang mit Sharepoint nicht funktioniert. Der erste Link enthält u.a. den Vorschlag, Sharepoint als Netzwerkressource (ich nehme an dies ergibt einen neuen Laufwerks-Buchstabe) einzurichten und mit dem zweiten Link kann man auch einen variablen Dateipfad ansprechen.
cu
Chris
AW: Lokaler Pfad einer Sharepoint Datei
14.03.2022 11:51:52
Frank
Hallo Chris,
ja, das vermute ich ich auch (Kill).Als Netzwerkressource einbinden geht in diesem Fall wegen der Menge der verschiedenen Sharepoints nicht. Das mit dem Variablen Dateipfad ist klar, aber den muss ich halt vorher irgendwie auslesen. Das Ganze muss idiotensicher sein, wenn ich da von einigen Usern verlange, den Dateipfad einzugeben, geht das leider in die Hose.
Grüße
Franky
Anzeige
AW: Lokaler Pfad einer Sharepoint Datei
14.03.2022 11:07:05
UweD
ungetestet..
strPath = ActiveWorkbook.Path
LG UweD
AW: Lokaler Pfad einer Sharepoint Datei
14.03.2022 11:48:59
Frank
Hallo Uwe,
leider nein, das gibt mir auch nur den Sharepoint-Pfad zurück.
Grüße
Franky
AW: Lokaler Pfad einer Sharepoint Datei
14.03.2022 11:52:08
UweD
Hi
wenn du das mit F5 im Einzelschritt durchgehst und nach dem Save mal was wartest... geht der Kill dann?
Wenn Ja, einen Wait dazwischen einfügen
LG UweD
AW: Lokaler Pfad einer Sharepoint Datei
14.03.2022 12:18:03
Frank
Leider nein.
Grüße
Franky
AW: Lokaler Pfad einer Sharepoint Datei
14.03.2022 13:40:30
UweD
Hallo nochmal
Versuch es mal mit FSO

Dim strPath As String
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
strPath = ActiveWorkbook.FullName ' [da wird dann "https://xxx.sharepoint.com/xxx" eingelesen]
ActiveWorkbook.SaveAs Filename:=strPath & "x" _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
FSO.DeleteFile strPath
LG UweD
Anzeige
AW: Lokaler Pfad einer Sharepoint Datei
16.03.2022 06:15:01
Frank
Hi Uwe,
sorry für die späte Antwort, bin erst jetzt zum Testen gekommen.
Das funktioniert leider auch nicht, hier gibt es "Laufzeitfehler '52': Dateiname oder -nummer flasch".
Grüße
Franky
AW: Lokaler Pfad einer Sharepoint Datei
16.03.2022 08:15:15
UweD
Dann bin ich raus
offen!
Lokaler Pfad einer Sharepoint Datei
18.03.2022 09:39:17
Anton
Hallo Frank,
probier es hiermit (ungetestet mangels Sharepoint zuhause):

Sub sharepoint_verbinden()
  Dim objNetzwerk As Object, fso As Object, strPath As String, strNameNeu As String    
  Dim strName As String, strBenutzername As String, strPasswort As String  
  Set objNetzwerk = CreateObject("WScript.Network")  
  Set fso = CreateObject("Scripting.FileSystemObject")  
 '  strBenutzername = "Benutzername"
 '  strPasswort = "Passwort"
  strPath = ActiveWorkbook.Path
  strName = ActiveWorkbook.Name
  strNameNeu = Replace(ActiveWorkbook.FullName, strName, "Neu_" & strName) 'anpassen
  ActiveWorkbook.SaveAs Filename:=strNameNeu, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False    
  If Not fso.DriveExists("B") Then  
    On Error Resume Next    
   'sharepointordner strPath verbinden
    objNetzwerk.MapNetworkDrive "B:", strPath ', , strBenutzername, strPasswort
    If Err.Number <> 0 Then  
      MsgBox Err.Description, vbCritical, "Fehler bei Verbindung!"
    Else
      Kill "B:\" & strName
      Call trennen
    End If  
  Else
    Call trennen
  End If  
  Set fso = Nothing  
  Set objNetzwerk = Nothing  
End Sub  
Function trennen()
  Dim win As Object  
 'Explorerfenster, falls geöffnet, schliessen
  For Each win In CreateObject("Shell.Application").Windows    
    If InStr(1, UCase(win.FullName), "EXPLORER.EXE") > 0 Then    
      If InStr(1, UCase(win.LocationURL), "B:") <> 0 Then win.Quit    
    End If  
  Next
 'sharepoint trennen
  Application.Wait (Now + TimeValue("0:00:02")) '2 Sekunden Pause
  CreateObject("WScript.Network").RemoveNetworkDrive "B:"
End Function  

mfg Anton
Anzeige
AW: Lokaler Pfad einer Sharepoint Datei
18.03.2022 13:40:38
Frank
Hallo Anton,
das würde schon daran scheitern, dass jeder User seinen Benutzernamen und Passwort im Code eintragen müsste. Letzteres ändert sich auch noch zwangsweise alle 90 Tage. Das könnte ich zwar auch durch eine Usereingabe abfrühstücken, da wird das Passwort dann aber ungeschützt eingetragen, was unsere IT sicher nicht freuen wird. Außerdem hat irgendjemand sicher auch B (und jeden anderen Buchstaben) bereits als Laufwerksbuchstabe vergeben, das könnte ich also auch nicht hartcodiert lassen, oder müsste im Code einen Buchstaben nach dem anderen abfragen.
Das kann doch nicht sein, dass MS es einem so schwer macht, eine versch****** Datei zu löschen, bzw. deren lokalen Pfad auszulesen.
Trotzdem Danke!
Grüße
Franky
Anzeige
AW: Lokaler Pfad einer Sharepoint Datei
18.03.2022 15:01:52
Anton
Hallo Frank,
jeder User seinen Benutzernamen und Passwort im Code eintragen müsste.
ist vielleicht gar nicht nötig, weil diese Angaben optional sind.
müsste im Code einen Buchstaben nach dem anderen abfragen.
ist auch nicht so ein großes Problem:

Sub sharepoint_verbinden()
  Dim objNetzwerk As Object, fso As Object, win As Object, strPath As String    
  Dim strName As String, strNameNeu As String, strFrei As String  
  Set objNetzwerk = CreateObject("WScript.Network")  
  Set fso = CreateObject("Scripting.FileSystemObject")  
  strPath = ActiveWorkbook.Path
  strName = ActiveWorkbook.Name
  strNameNeu = Replace(ActiveWorkbook.FullName, strName, "Neu_" & strName) 'anpassen
  ActiveWorkbook.SaveAs Filename:=strNameNeu, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False    
  For i = 65 To 90  
    If Not fso.DriveExists(Chr(i)) Then  
      strFrei = Chr(i) & ":"
      Exit For  
    End If  
  Next
  On Error Resume Next    
 'sharepointordner strPath verbinden
  objNetzwerk.MapNetworkDrive strFrei, strPath
  If Err.Number <> 0 Then  
    MsgBox Err.Description, vbCritical, "Fehler bei Verbindung!"
  Else
    Kill strFrei & "\" & strName
   'Explorerfenster, falls geöffnet, schliessen
    For Each win In CreateObject("Shell.Application").Windows    
      If InStr(1, UCase(win.FullName), "EXPLORER.EXE") > 0 Then    
        If InStr(1, UCase(win.LocationURL), strFrei) <> 0 Then win.Quit    
      End If  
    Next
   'sharepoint trennen
    Application.Wait (Now + TimeValue("0:00:02")) '2 Sekunden Pause
    CreateObject("WScript.Network").RemoveNetworkDrive strFrei
  End If  
  Set fso = Nothing  
  Set objNetzwerk = Nothing  
End Sub  

mfg Anton
PS: Probier es einfach aus, vielleicht funktioniert es doch :-)
Anzeige
@zechfr Test oT
21.03.2022 20:51:09
Anton

84 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige