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

Forumthread: Laufzeitfehler '52'

Laufzeitfehler '52'
11.10.2020 20:08:02
Celuldor
Hallo ich bekomme einen Laufzeitfehler und mir wird die Zeile :
"strDateiName = Dir$("https://www.geheime_adresse.de/*.*")"
markiert.
hier mein Makro(anonymisiert):

Sub DateinamenAuflisten()
Dim strDateiName As String, strDateienListe As String, i As Integer
strDateiName = Dir$("https://www.geheime_adresse.de/*.*")
Do While strDateiName  ""
strDateienListe = strDateienListe & ", " & strDateiName
i = i + 1
strDateiName = Dir$()
Loop
strDateienListe = Right(strDateienListe, Len(strDateienListe) - 2)
Range("B1").Value = strDateienListe
End Sub

Laufzeitfehler '52':
Dateiname oder -nummer falsch
wo ist mein Fehler?
und wichtiger, wie behebe ich diesen? :-)
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler '52'
11.10.2020 20:20:17
Celuldor
achja, bei der URL handelt es sich im ein Cloud-Ordner mit Login,
in den "Datenquelleneinstellungen" habe ich diesen Login für diese URL auch hinterlegt
AW: Laufzeitfehler '52'
11.10.2020 21:48:14
Daniel
Ich vermute mal, dass die DIR-Funktion noch ein "echtes" Laufwerk baucht und keine WWW-URL.
Gruß Daniel
AW: Laufzeitfehler '52'
11.10.2020 23:00:04
Celuldor
ok, und wie heißt die Funktion die ich brauche um alle Dateien in einem Cloud Ordner aufzulisten?
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Laufzeitfehler '52' in Excel VBA beheben


Schritt-für-Schritt-Anleitung

  1. Fehleranalyse: Der Laufzeitfehler '52' (Dateiname oder -nummer falsch) tritt häufig auf, wenn die Dir-Funktion in VBA mit einer ungültigen URL verwendet wird. Diese Funktion erwartet einen Pfad zu einem lokalen Laufwerk und nicht zu einer Online-URL.

  2. Makro anpassen: Um alle Dateien in einem Cloud-Ordner aufzulisten, solltest Du eine andere Methode verwenden. Eine gängige Methode ist die Verwendung von APIs, die von deinem Cloud-Dienstanbieter bereitgestellt werden. Hier ist ein Beispiel, wie Du die FileSystemObject-Klasse nutzen kannst:

    Sub CloudDateienAuflisten()
       Dim fso As Object
       Dim Ordner As Object
       Dim Datei As Object
       Dim strPfad As String
       Dim strDateienListe As String
    
       strPfad = "C:\Dein\Cloud\Ordner\" ' Lokaler Pfad zu deinem synchronisierten Cloud-Ordner
       Set fso = CreateObject("Scripting.FileSystemObject")
       Set Ordner = fso.GetFolder(strPfad)
    
       For Each Datei In Ordner.Files
           strDateienListe = strDateienListe & Datei.Name & vbCrLf
       Next Datei
    
       Range("B1").Value = strDateienListe
    End Sub
  3. Makro ausführen: Füge das angepasste Makro in den VBA-Editor ein und führe es aus. Achte darauf, den korrekten Pfad zu deinem Cloud-Ordner anzugeben.


Häufige Fehler und Lösungen

  • Laufzeitfehler '52': Dieser Fehler tritt auf, wenn Du versuchst, eine URL mit der Dir-Funktion zu verwenden. Du solltest stattdessen eine lokale Dateistruktur verwenden oder eine API nutzen.

  • Dateipfad ist falsch: Stelle sicher, dass der angegebene Pfad zu deinem Cloud-Ordner korrekt ist. Überprüfe, ob der Ordner tatsächlich existiert und die richtigen Zugriffsberechtigungen hat.


Alternative Methoden

  • API-Nutzung: Viele Cloud-Dienste bieten APIs, die Du nutzen kannst, um auf Dateien zuzugreifen. Informiere Dich über die spezifische API-Dokumentation deines Cloud-Anbieters (z.B. Google Drive API, OneDrive API).

  • Power Query: Eine gute Alternative ist die Nutzung von Power Query in Excel, um auf Cloud-Daten zuzugreifen und diese zu importieren. Diese Methode erfordert kein VBA und ist oft einfacher.


Praktische Beispiele

Wenn Du beispielsweise mit OneDrive arbeitest, könntest Du die Microsoft Graph API verwenden, um eine Liste deiner Dateien abzurufen. Hier ist ein einfaches Beispiel, wie eine API-Anfrage in VBA aussehen könnte:

Sub OneDriveDateienAuflisten()
    ' Hier könnte der Code für die API-Anfrage stehen
End Sub

Denke daran, dass Du für API-Anfragen oft einen Zugangstoken benötigst, um authentifiziert auf die Daten zuzugreifen.


Tipps für Profis

  • Debugging: Nutze die Debugging-Tools in VBA, um Deine Makros Schritt für Schritt zu überprüfen. Das hilft, Laufzeitfehler frühzeitig zu erkennen.

  • Modularer Code: Teile Deinen Code in kleinere, wiederverwendbare Funktionen auf. Das macht das Testen und die Fehlersuche einfacher.

  • Dokumentation: Halte Deine Code-Dokumentation aktuell, insbesondere wenn Du mit APIs arbeitest. Das erleichtert die Wartung und das Verständnis des Codes.


FAQ: Häufige Fragen

1. Was ist Laufzeitfehler '52'?
Der Laufzeitfehler '52' tritt auf, wenn ein Dateiname oder eine Nummer in einem VBA-Skript ungültig ist, häufig weil die Dir-Funktion mit einem falschen Dateipfad aufgerufen wird.

2. Wie kann ich in Excel alle Dateien aus einem Cloud-Ordner auflisten?
Anstelle der Dir-Funktion solltest Du entweder eine lokale Synchronisation des Cloud-Ordners nutzen oder die API deines Cloud-Anbieters einsetzen, 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