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

Forumthread: Excelfile mit DIR in Onedrive finden

Excelfile mit DIR in Onedrive finden
14.10.2020 13:22:14
Sebastian
Hallo,
schön hier dabei zu sein.Ich bin auf der Suche nach eine Lösung für folgendes Problem:
Ich habe ein längeres Macro und am Ende soll ein Wert aus einer bestimmten Zelle in eine andere Excelfile geschrieben werden. Da die zu beschreibendende Datei immer eine andere ist und auch der Name dieser leicht variieren kann habe ich die Dir Funktion mit Wildcards (*) genutzt.
Früher hat das alles wunderbar funktionert, da alles auf meiner Festplatte unter C gepeichert war. Jetzt habe ich diese Dateien in meiner OneDrive gespeichert und es geht nicht mehr.
In der Zeile mit der Dir Funktion kommt immer der Fehler (Run-time error '52':).
Wenn ich einfach nur eine spezielle Datei direkt aus der Onedrive mit Workbooks.open aufrufe klappt alles. Daraus schließe ich, dass ich die Zugriffsrechte usw. habe und irgendwie die Syntax der Dir Funktion fehlerhaft bei mir ist.
Der Pfad ist auch richtig, da ich ihn direkt von der webversion von OneDrive übernommen habe.
Ich hatte auch etwas gelesen, dass es wichtig ist die richtigen / oder \ zu nutzen und nach dieser Info sind die auch richtig.
Auf der Seite habe ich auch noch ein paar spärliche Infos gefunden auf der auch meine Syntax _ der Dir funktion angewand wird (lezte Zeile) .....

https://bettersolutions.com/vba/function...nction.htm

--> Ich denke prinzipiell wird es schon irgendwie mir der Dir gehen, nur vermute ich das die Schreibweise nicht korrekt ist.
Somit bin ich mir dem Latein am Ende und hoffe das einer von euch mir weiterhelfen kann.
Schon mal vielen Dank im Vorraus.
Code ist:
ID=xxxx
Batch = tt.mm.yyyy
Search = ID & "_" & Batch
Path = "http://firmenname365-my.sharepoint.com/personal/reactor_firmenname_com/Documents/FBR% _
20logs/2020/"
Dataname = Dir(Path & Search & "*.xls*")
If Dataname  "" Then
Workbooks.Open Path & Dataname
Else
MsgBox ("not found")
End If

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excelfile mit DIR in Onedrive finden
14.10.2020 13:31:31
volti
Hallo Sebastian,
die "http"-Variante in Zusammenhang mit der Dir-Funktion geht m.E. gar nicht.
Wenn überhaupt, geht es mit der Explorer-Variante, so in der Art:
\\firmenname365-my.sharepoint.com\personal\reactor_firmenname_com\Documents\FBR logs\2020\
Zu beachten ist auch, dass in Url's keine Leerzeichen sein dürfen, so dass diese in Hex-Angabe %20 angegeben werden müssen. In der Explorer-Variante sind es aber wieder normale Leerzeichen.
viele Grüße
Karl-Heinz
Anzeige
AW: Excelfile mit DIR in Onedrive finden
14.10.2020 17:55:45
Sebastian
Hey Karl Heinz,
ich habe nochmal alle Versionen mit "/" und "\" durchprobiert. Auch habe ich die Ordner mit Leerzeichen umbenannt (mit "_" jetzt) also sollte das auch kein Problem sein. Ohne "http:" scheint es so als ob er länger sucht aber am Ende kommt der gleiche Fehler. "Run-time error 52. Bad file name or number "
Bin nicht sicher wie noch weiter kommen soll.
Anzeige
AW: Excelfile mit DIR in Onedrive finden
14.10.2020 18:09:56
volti
Ja schade Sebastian,
ich meine, das früher auf der Arbeit so gemacht zu haben.
Aber da ich keinen Sharepoint mehr habe, kann ich da leider dann auch nicht mehr weiterhelfen :-(
viele Grüße
Karl-Heinz
;
Anzeige
Anzeige

Infobox / Tutorial

Excelfile mit DIR in OneDrive finden


Schritt-für-Schritt-Anleitung

Um mit der Dir-Funktion in OneDrive zu arbeiten, beachte die folgenden Schritte:

  1. Pfad anpassen: Stelle sicher, dass du den richtigen Pfad zum OneDrive-Ordner verwendest. Anstelle von HTTP-Links solltest du den UNC-Pfad verwenden:

    \\firmenname365-my.sharepoint.com\personal\dein_name\Documents\dein_ordner\
  2. Leerzeichen ersetzen: Achte darauf, dass in URLs keine Leerzeichen enthalten sind. Verwende %20 in HTTP-Links, jedoch nicht in UNC-Pfaden. In UNC-Pfaden sind Leerzeichen zulässig.

  3. VBA-Code anpassen: Hier ist ein Beispiel, wie du den VBA-Code anpassen kannst:

    ID = "xxxx"
    Batch = Format(Date, "dd.mm.yyyy")
    Search = ID & "_" & Batch
    Path = "\\firmenname365-my.sharepoint.com\personal\dein_name\Documents\dein_ordner\"
    Dataname = Dir(Path & Search & "*.xls*")
    If Dataname <> "" Then
       Workbooks.Open Path & Dataname
    Else
       MsgBox ("Datei nicht gefunden")
    End If
  4. Testen: Führe das Makro aus und überprüfe, ob der Fehler weiterhin auftritt.


Häufige Fehler und Lösungen

  • Run-time error '52': Bad file name or number:

    • Ursache: Häufig tritt dieser Fehler auf, wenn der Pfad nicht korrekt ist oder die Datei nicht gefunden wird.
    • Lösung: Überprüfe den Pfad und stelle sicher, dass du den UNC-Pfad verwendest, nicht den HTTP-Pfad.
  • Probleme mit Leerzeichen:

    • Ursache: Bei URLs dürfen keine Leerzeichen vorhanden sein.
    • Lösung: Verwende _ anstelle von Leerzeichen oder lasse sie in UNC-Pfaden weg.

Alternative Methoden

Falls die Dir-Funktion nicht wie gewünscht funktioniert, kannst du folgende Alternativen in Betracht ziehen:

  1. SharePoint in Explorer einbinden: Binde deinen SharePoint-Ordner in den Windows Explorer ein, um einen leichter zugänglichen UNC-Pfad zu erhalten.

  2. Verwendung von Workbooks.Open: Wenn du den genauen Dateinamen kennst, kannst du direkt mit Workbooks.Open arbeiten, um die Datei zu öffnen, anstatt Dir zu verwenden.


Praktische Beispiele

Hier sind einige praktische Beispiele, die dir helfen können, die Dir-Funktion in Verbindung mit OneDrive und SharePoint zu verwenden:

  • Beispiel 1 - Datei suchen:

    Dim filePath As String
    filePath = "\\firmenname365-my.sharepoint.com\personal\dein_name\Documents\dein_ordner\"
    Dim fileName As String
    fileName = Dir(filePath & "Beispiel_*.xls")
    If fileName <> "" Then
      MsgBox "Datei gefunden: " & fileName
    Else
      MsgBox "Keine passende Datei gefunden."
    End If
  • Beispiel 2 - Alle Dateien auflisten:

    Dim file As String
    file = Dir(filePath & "*.xls")
    Do While file <> ""
      Debug.Print file
      file = Dir
    Loop

Tipps für Profis

  • Verwende Option Explicit: Setze ihn am Anfang jedes Moduls, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.

  • Debugging: Setze Breakpoints im Code, um genau zu sehen, wo der Fehler auftritt.

  • VBA-Lernressourcen: Nutze Online-Ressourcen und Foren, um mehr über die Dir-Funktion und andere VBA-Funktionen zu lernen.


FAQ: Häufige Fragen

1. Kann ich Dir mit HTTP-Links verwenden? Nein, die Dir-Funktion funktioniert nicht mit HTTP-Links. Verwende stattdessen den UNC-Pfad.

2. Was ist der Unterschied zwischen UNC-Pfad und HTTP-Pfad? Ein UNC-Pfad ist ein Netzwerkpfad, der direkt auf einen Ordner oder eine Datei zugreift, während ein HTTP-Pfad für Web-Zugriffe gedacht ist.

3. Wie kann ich sicherstellen, dass mein VBA-Code auf OneDrive funktioniert? Achte darauf, dass du den richtigen UNC-Pfad verwendest und teste deinen Code regelmäßig auf mögliche Fehler.

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