Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Ordner per VBA in Sharepoint erstellen

Ordner per VBA in Sharepoint erstellen
20.08.2020 11:33:53
Sandro
Hallo liebes Forum
Ich bin auf ein Problem gestossen und stehe mit meinem Wissen an. Vielleicht kann mir jemand weiterhelfen.
Gerne möchte ich in einem vorgegeben Pfad im Sharepoint einen Ordner mit dem Namen der TextBox1 der UserFrom anlegen lassen. Wenn ich dies mit einem Pfad aus dem normal Laufwerk versuche funktioniert mein Code einwandfrei. Verwende ich aber den Pfad von dem gewünschten SharePoint Ordner, kommt der Fehler "Pfad nicht gefunden".
Hier der Code der Funktioniert:
Dim Pfad As String
Pfad = "T:\Test\Ordner_Anlegen" 'Pfad
Pfad = Pfad & Me.TextBox1.Value
MkDir (Pfad)
Hier der Code der nicht Funktioniert:
Dim Pfad As String
Pfad = "https://herzogelmigerch.sharepoint.com/sites/Logistik/Freigegebene%20Dokumente/01_Test/Ordner_Anlegen" 'Pfad
Pfad = Pfad & Me.TextBox1.Value
MkDir (Pfad)
Danke für eure Hilfe.
Grüsse
Sandro
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ordner per VBA in Sharepoint erstellen
20.08.2020 12:13:26
Pierre
Hallo Sandro,
probier mal folgende Schreibweise:
\\herzog(...)

und überall Backslash verwenden, wo du Slash hast.
Gruß Pierre
AW: Ordner per VBA in Sharepoint erstellen
20.08.2020 13:05:01
Sandro
Hallo Pierre
Das habe ich bereits probiert, leider erscheint die gleiche Fehlermeldung, egal ob Slash oder Backslash.
Gruss
Anzeige
AW: Ordner per VBA in Sharepoint erstellen
20.08.2020 13:49:16
Sandro
Ja auch ohne "https:" geht es nicht, selbe Fehlermeldung.
Den von dir verlinkten Forumbeitrag habe ich beim Googeln auch gefunden, aber das war mir zu kompliziert. Sprich, ich konnte das geschriebene mit meinem Wissenstand nicht anwenden.
Gruss
AW: Ordner per VBA in Sharepoint erstellen
20.08.2020 15:40:44
volti
Hallo Sandro,
nur eine Idee aus grauer Vorzeit:
Pfad="\\herzogelmigerch.sharepoint.com\@SSL\DavWWWRoot\sites\Logistik\Freigegebene Dokumente\01_Test\Ordner_Anlegen"
PS: Die %20 stehen in Urls für das Leerzeichen (Hex 20 = ASCii 32 = Leerzeichen). Hattest Du das bei Deinen Versuchen berücksichtigt?
viele Grüße
Karl-Heinz
Anzeige
AW: Ordner per VBA in Sharepoint erstellen
21.08.2020 09:15:57
Sandro
Hoi Karl-Heinz
Deine Idee hat leider nichts verändert.
Ja ich habe beides versucht. Mit %20 und mit Leerzeichen im Pfad. Beides mit dem selben Ergebnis.
Grüsse
Sandro
AW: Ordner per VBA in Sharepoint erstellen
20.08.2020 15:46:01
EtoPHG
Hallo Sandro,
MkDir ist ein DOS-Relikt und das kann nicht direkt aus Sharepoint angewendet werden!
Allerdings ist es möglich ein Sharepoint-Verzeichnis im Explorer zu mappen. Ich mach das z.B. ïndem ich ein OneDrive Verzeichnis mit Verweis auf das Sharepoint Verzeichnis mappe. Mehr Infos auch hier.
Anschliessend kann die UNC-Notation des Verzeichnis mit einem zusätzlich zu erstellenden Unterverzeichnis verkettet werden und mit MkDir angewendet werden.
Gruess Hansueli
Anzeige
AW: Ordner per VBA in Sharepoint erstellen
21.08.2020 09:14:52
Sandro
Hallo Hansueli
Soweit ich das mit meinem Wissen beurteilen kann, ist das Sharepoint-Verzeichnis im Explorer gemappt. Ich erreiche es jedenfalls über den Explorer, ohne Sharepoint zu verwenden.
Das Problem ist, dass der Pfad so aussieht:
C:\Users\Vorname.Nachname\Firma\Logistik - Dokumente/01_Test/Ordner_Anlegen
Sprich, er ist "personalisiert", da immer der Name des Users im Pfad vorkommt.
Diesen Teil deiner Erklärung habe ich nicht verstanden:
"Anschliessend kann die UNC-Notation des Verzeichnis mit einem zusätzlich zu erstellenden Unterverzeichnis verkettet werden und mit MkDir angewendet werden."
Gruss
Sandro
Anzeige
AW: Ordner per VBA in Sharepoint erstellen
21.08.2020 17:15:09
EtoPHG
Hallo Sandro,
Neben diesem Forum gibt es ja auch noch Google/Wikipedia etc. und dort findest du eine Erklärung der UNC Notation.
Gruess Hansueli
Ordner per VBA in Sharepoint erstellen
21.08.2020 18:44:58
Anton
Hallo Sandro,
probier's hiermit:
Code in Zwischenablage:

Option Explicit
Sub sharepoint_neuer_ordner()
  Dim objNetzwerk As Object  
  Dim strPath As String, sNeuerOrdner As String    
  Set objNetzwerk = CreateObject("WScript.Network")  
  strPath = "https://herzogelmigerch.sharepoint.com/sites/Logistik/Freigegebene Dokumente/01_Test/Ordner_Anlegen"   'anpassen
  sNeuerOrdner = "test"  'anpassen oder Me.TextBox1.Value
  If Not CreateObject("Scripting.FileSystemObject").DriveExists("B") Then    
    On Error Resume Next    
   'sharepoint als Laufwerk "B:" verbinden
    objNetzwerk.MapNetworkDrive "B:", strPath
    If Err.Number <> 0 Then  
      MsgBox Err.Description, vbCritical, "Fehler bei Verbindung!"
    Else
     'Ordner erstellen
      If Dir("B:\" & sNeuerOrdner, vbDirectory) = "" Then MkDir "B:\" & sNeuerOrdner  
     'sharepoint trennen
      objNetzwerk.RemoveNetworkDrive "B:"
    End If  
  End If  
  Set objNetzwerk = Nothing  
End Sub

mfg Anton
Anzeige
AW: Ordner per VBA in Sharepoint erstellen
26.08.2020 08:00:17
Sandro
Hallo Anton
Vielen Dank für deinen Code, leider erhalte ich die Fehlermeldung, dass ich nicht authentifiziert bin. Wahrscheinlich wegen dem Verbinden als Laufwerk B.
Ich habe eine Alternativlösung gefunden, wie die Ordner erstellt werden können. Muss zwar in einem Separaten Tabellenblatt gemacht werden, dafür kann man gleich viele aufs mal anlegen:
Sub OrdnerErstellen()
Dim sFolder As String, sNeu As String, rngC As Range, n As Integer
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = -1 Then
sFolder = .SelectedItems(1)
End If
End With
If sFolder  "" Then
With Sheets(5)
For Each rngC In .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp))
If rngC  "" Then
sNeu = sFolder & "\" & rngC
If Dir(sNeu, vbDirectory) = "" Then
MkDir sNeu
Else
n = n + 1
End If
End If
Next
End With
End If
Range("A2:A" & Cells(Rows.Count, "A").End(xlUp).Row).ClearContents
MsgBox "Ordner anlegen war erfolgreich"
If n Then MsgBox n & " Ordner nicht angelegt.", vbInformation, "Info"
End 

Sub
Grüsse
Sandro

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Ordner per VBA in SharePoint erstellen


Schritt-für-Schritt-Anleitung

Um einen Ordner in SharePoint mit VBA zu erstellen, kannst du folgende Schritte befolgen. Diese Anleitung ist für Excel-Nutzer gedacht, die Erfahrung mit VBA haben.

  1. SharePoint-Pfad ermitteln: Stelle sicher, dass du den korrekten UNC-Pfad zu deinem SharePoint-Verzeichnis hast. Du kannst es so definieren:

    Dim Pfad As String
    Pfad = "\\herzogelmigerch.sharepoint.com\@SSL\DavWWWRoot\sites\Logistik\Freigegebene Dokumente\01_Test\Ordner_Anlegen"
  2. VBA-Code schreiben: Verwende die folgende Struktur, um einen Ordner zu erstellen:

    Dim objNetzwerk As Object
    Dim sNeuerOrdner As String
    Set objNetzwerk = CreateObject("WScript.Network")
    sNeuerOrdner = "NeuerOrdnerName" ' Hier den gewünschten Ordnernamen anpassen
    
    If Not CreateObject("Scripting.FileSystemObject").DriveExists("B") Then
       objNetzwerk.MapNetworkDrive "B:", Pfad
    End If
    
    If Dir("B:\" & sNeuerOrdner, vbDirectory) = "" Then
       MkDir "B:\" & sNeuerOrdner
    End If
    
    objNetzwerk.RemoveNetworkDrive "B:"
    Set objNetzwerk = Nothing
  3. Code ausführen: Starte das Makro in Excel, um den Ordner zu erstellen.


Häufige Fehler und Lösungen

  • Fehler: "Pfad nicht gefunden": Überprüfe, ob der Pfad korrekt ist und ob du die richtigen Berechtigungen hast. Achte darauf, dass Leerzeichen im Pfad korrekt behandelt werden (z.B. %20 für Leerzeichen).

  • Authentifizierungsfehler: Wenn du beim Verbinden als Laufwerk B eine Fehlermeldung bekommst, stelle sicher, dass du angemeldet bist und die richtigen Anmeldedaten verwendest.

  • MkDir funktioniert nicht: MkDir kann nicht direkt für SharePoint verwendet werden. Stelle sicher, dass der Pfad als Netzlaufwerk verbunden ist.


Alternative Methoden

Eine alternative Methode, um Ordner in SharePoint zu erstellen, ist die Verwendung von OneDrive:

  1. OneDrive mit SharePoint verbinden: Synchronisiere dein SharePoint-Verzeichnis mit OneDrive.
  2. Ordner erstellen: Verwende den Windows Explorer, um Ordner direkt im synchronisierten Verzeichnis zu erstellen.

Eine andere Option ist die Verwendung von REST-API-Methoden über VBA, um mit SharePoint zu interagieren.


Praktische Beispiele

Hier ist ein einfaches Beispiel für das Erstellen mehrerer Ordner aus einer Liste in Excel:

Sub OrdnerErstellen()
    Dim sFolder As String, sNeu As String, rngC As Range
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show = -1 Then
            sFolder = .SelectedItems(1)
        End If
    End With

    With Sheets(1) ' Hier das entsprechende Arbeitsblatt auswählen
        For Each rngC In .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp))
            If rngC.Value <> "" Then
                sNeu = sFolder & "\" & rngC.Value
                If Dir(sNeu, vbDirectory) = "" Then
                    MkDir sNeu
                End If
            End If
        Next
    End With

    MsgBox "Ordner wurden erfolgreich erstellt."
End Sub

Tipps für Profis

  • Verwendung von "DriveExists": Überprüfe, ob das SharePoint-Verzeichnis als Netzlaufwerk verbunden ist, bevor du versuchst, Ordner zu erstellen. Dies verhindert Fehler und verbessert die Effizienz.

  • Fehlerbehandlung einbauen: Verwende On Error Resume Next, um dein Makro robuster zu machen und unerwartete Fehler zu vermeiden.

  • Dokumentation: Halte dich über die neuesten Änderungen in SharePoint und Excel VBA auf dem Laufenden, um immer die besten Praktiken zu kennen.


FAQ: Häufige Fragen

1. Kann ich Ordner in SharePoint ohne VBA erstellen? Ja, du kannst Ordner direkt im SharePoint-Webinterface oder über OneDrive erstellen.

2. Warum funktioniert der UNC-Pfad nicht? Stelle sicher, dass du den Pfad korrekt formatiert hast und dass du die notwendigen Berechtigungen besitzt, um auf den SharePoint-Ordner zuzugreifen.

3. Was ist die beste Methode, um mit SharePoint in Excel zu arbeiten? Die Verwendung der SharePoint REST-API kann eine effiziente Methode sein, um Daten zu lesen und zu schreiben. VBA bietet jedoch eine einfache Möglichkeit, grundlegende Aufgaben wie das Erstellen von Ordnern zu automatisieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige