Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA prüfen ob Ordner auf OneDrive Exisitiert

Forumthread: VBA prüfen ob Ordner auf OneDrive Exisitiert

VBA prüfen ob Ordner auf OneDrive Exisitiert
18.01.2024 12:09:38
Thomas
Hallo,
ich möchte mittels VBA Prüfen ob ein Verzeichnis Existiert und wenn nicht soll es angelegt werden, das ganze liegt auf einem OneDrive for Business.

Allerdings bekomme ich es leider nicht hin mit folgendem Code

Sub OrdnerFolgeJahrAnlegen()


Dim fsObject As Object
Dim strBerichteOrdner As String
Dim strSuchenderOrdner As String

strBerichteOrdner = ThisWorkbook.Path & "/Berichte/"
strSuchenderOrdner = "2024"

Set fsObject = CreateObject("Scripting.FileSystemObject")

If Not fsObject.FolderExists(strBerichteOrdner & strSuchenderOrdner) Then
ChDir strBerichteOrdner
MkDir strSuchenderOrdner
Else
MsgBox "Ordner besteht schon"
End If

End Sub


Dann kommt immer bei
 ChDir strBerichteOrdner
"Laufzeitfehler 76, Pfad nicht gefunden
Wenn ich mir den Wert von strBerichteOrdner im Direktfenster ausgeben lasse bekomme ich das:
https://my.sharepoint.com/personal/thomas/Documents/Apps/Test/Berichte
, wenn ich dann den Code mit der Maus auf das
MkDir strSuchenderOrdner
ziehe, wird ein Ordner erstellt, allerdings im falschen Verzeichnis , nämlich hier https://my.sharepoint.com/personal/thomas/Documents

Was mache ich da falsch?

Danke


Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA prüfen ob Ordner auf OneDrive Exisitiert
18.01.2024 18:06:13
Marc
Ich glaube das Problem liegt im relativen Pfad der Datei...

Wenn du Dateien aus einer Cloud lädst , wird es im allgemein in einem nicht öffentlichen Bereich innerhalb deines Dateisystems gespeichert ( Dokumente, Eigene Dateien, Downloads )..
Der Zugriff von VBA dahin ist nicht möglich (bzw. ich weiß selber nicht wie das gehen soll)

Daher kommt er mit der Pfadwahl eventuell durcheinander.
Ist die Datei an einem fixen Pfad angegeben , sollte es eventuell gehen.

Wenn du z.-b. eine Datei als Anhang aus Outlook direkt startest, speichert er die Datei unter Downloads und kann auf diesen relativen Pfad nicht zugreifen (was bei Makros dann zu Abbrüchen führt)

Allerdings weiß ich selber nicht, da ich keine Cloud benutze, ob es je nach Cloudanbieter noch weitere Hürden gibt.
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Ordner auf OneDrive mit VBA prüfen und anlegen


Schritt-für-Schritt-Anleitung

Um zu prüfen, ob ein Ordner auf OneDrive existiert und diesen gegebenenfalls anzulegen, kannst du den folgenden VBA-Code verwenden:

Sub OrdnerFolgeJahrAnlegen()
    Dim fsObject As Object
    Dim strBerichteOrdner As String
    Dim strSuchenderOrdner As String

    strBerichteOrdner = "C:\Users\DeinBenutzername\OneDrive\Berichte\" 'Anpassen!
    strSuchenderOrdner = "2024"

    Set fsObject = CreateObject("Scripting.FileSystemObject")

    If Not fsObject.FolderExists(strBerichteOrdner & strSuchenderOrdner) Then
        MkDir strBerichteOrdner & strSuchenderOrdner
        MsgBox "Ordner wurde erstellt: " & strBerichteOrdner & strSuchenderOrdner
    Else
        MsgBox "Ordner besteht schon"
    End If
End Sub

Achte darauf, den strBerichteOrdner-Pfad auf den richtigen Speicherort in deiner OneDrive zu setzen. In diesem Beispiel wird der Ordner "Berichte" innerhalb deines OneDrive-Ordners verwendet.


Häufige Fehler und Lösungen

  • Laufzeitfehler 76, Pfad nicht gefunden: Dieser Fehler tritt auf, wenn der angegebene Pfad nicht korrekt ist. Überprüfe, ob der Pfad zu deinem OneDrive-Ordner korrekt angegeben ist und ob der Ordner "Berichte" tatsächlich existiert.

  • Ordner wird im falschen Verzeichnis erstellt: Stelle sicher, dass du den vollständigen Pfad für MkDir angibst, z. B. MkDir strBerichteOrdner & strSuchenderOrdner.


Alternative Methoden

Wenn du Schwierigkeiten mit VBA hast, kannst du auch die PowerShell verwenden, um einen Ordner auf OneDrive zu erstellen. Hier ist ein Beispiel:

$path = "C:\Users\DeinBenutzername\OneDrive\Berichte\2024"
if (-Not (Test-Path -Path $path)) {
    New-Item -ItemType Directory -Path $path
    Write-Host "Ordner wurde erstellt."
} else {
    Write-Host "Ordner besteht schon."
}

Diese Methode ist besonders nützlich, wenn du mit Skripten außerhalb von Excel arbeiten möchtest.


Praktische Beispiele

Hier ist ein einfaches Beispiel, das zeigt, wie du das obige Skript anpassen kannst, um Ordner für verschiedene Jahre zu erstellen:

For i = 2021 To 2025
    strSuchenderOrdner = CStr(i)
    If Not fsObject.FolderExists(strBerichteOrdner & strSuchenderOrdner) Then
        MkDir strBerichteOrdner & strSuchenderOrdner
    End If
Next i

Dieses Skript erstellt Ordner für die Jahre 2021 bis 2025 in deinem OneDrive-Verzeichnis.


Tipps für Profis

  • Verwende absolute Pfade: Stelle sicher, dass du absolute Pfade verwendest, besonders wenn du mit Cloud-Diensten wie OneDrive arbeitest.

  • Fehlerbehandlung einbauen: Implementiere Fehlerbehandlungsroutinen in deinem VBA-Code, um unerwartete Fehler abzufangen. Beispiel:

On Error Resume Next
MkDir strBerichteOrdner & strSuchenderOrdner
If Err.Number <> 0 Then
    MsgBox "Fehler beim Erstellen des Ordners: " & Err.Description
End If
On Error GoTo 0

FAQ: Häufige Fragen

1. Wie kann ich den Pfad zu meinem OneDrive-Ordner finden?
Du kannst den Pfad zu deinem OneDrive-Ordner finden, indem du im Datei-Explorer zu deinem OneDrive navigierst und die Adresszeile kopierst.

2. Funktioniert dieser Code in allen Excel-Versionen?
Der Code sollte in Excel 2010 und höher funktionieren, solange VBA unterstützt wird. Achte darauf, dass deine OneDrive-Installation korrekt konfiguriert ist.

3. Was tun, wenn ich Zugriff auf OneDrive über VBA nicht habe?
Überprüfe die Berechtigungen deiner OneDrive-Installation und stelle sicher, dass du über die erforderlichen Zugriffsrechte verfügst, um auf die Dateien zuzugreifen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige