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

Forumthread: Dateienamen in Ordner auf Website auslesen

Dateienamen in Ordner auf Website auslesen
Fettertiger
Hallo zusammen,
ich hatte schon vor längere Zeit einen Post zu diesem Thema ins Forum gestellt, nur damals leider keine brauchbare Antwort erhalten. Vielleicht sind jetzt ein paar Cracks aus dem Urlaub zurück und können mir bei dem wahrscheinlich trivialen Problem helfen:
Eines meiner Tools holt sich regelmäßig den aktuell gültigen Wechselkurs aus einer Datei auf unserem Sharepoint (also einer art interner Webseite). Blöderweise ändern die Experten in eirgendeinem asiatischen Inselstaat jeden Monat den Dateinamen - und folgen dabei auch keiner durchgehender Namenskonvention.
Trotzdem sollte es nicht allzu schwer sein die Datei zu finden, den im entsprechenden Ordner gibt es nur genau eine Excel Datei.
Der Pfad zu dem Sharepoint Ordner steht bspw. in der Zelle A1 (z.B:
http://teamspace.meinefirma.com/sites/rd_currency"
Wie bekomme ich per VBA den Dateinamen dieser (einzigen) Datei in die Zelle B1? Von mir aus kann auch gerne alle Dateien (falls es im Ordner mehr gäbe) untereinander B1, B2,B3 etc geschrieben werden.
Danke für Eure Hilfe - uns sorry für den "fast-Doppelpost"
Gruss
Fettertiger
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Dateienamen in Ordner auf Website auslesen
25.09.2010 23:09:40
Gerold
Hallo Fettertiger
Ich hoffe es hilft dir

Sub DateiFinden()
Dim Dateiname As String, i As Long, Ordner As String
Ordner = Tabelle1.Range("A1").Value
Tabelle1.Range("B1", "B" & Rows.Count).ClearContents        'Spalte B löschen
'Dateiname = Dir$(Ordner & "\*.*")                          'Alle Dateien
Dateiname = Dir$(Ordner & "\*.xls")                         'xls  Dateien
Do While Len(Dateiname) > 0
If Right(Dateiname, 3) = "xls" Then
i = i + 1
Tabelle1.Cells(i, 2).Value = Dateiname
End If
Dateiname = Dir$()
Loop
End Sub
mfg Gerold
Anzeige
AW: Dateienamen in Ordner auf Website auslesen
26.09.2010 14:38:08
Fettertiger
Hallo,
leider funzt DIR auf dem Sharepoint nicht!
Ich habe jetzt trotzdem eine Lösung gefunden! Für den Fall, das wieder mal jemand vor dem gleichen Problem steht, habe ich eine Musterdatei angehängt.
https://www.herber.de/bbs/user/71657.xlsm
Der Trick dabei ist, das ich nicht mittels speziell vorgesehener Befehle wie DIR arbeite, sondern in dem ich mir in eine Zelle eine Webquery erstellt habe (einfach über Data - from Web und dann die Webadresse eigeben, alles selektieren und ok).
Jetzt kann ich per Macro die Eigenschaftt (sprich URL) der Webquery verändern . Das Ergebnis wird mir dann im Bereich neben und unterhalb der Webquery Zelle angezeigt - also die gesamte Webseite in Textform. Jetzt ist es leicht die entsprechende Information auszulesen.
In dem "Mustersharepoint" landen die Dateinamen in SPalte V (=23), ich muss also nur die Spalte nach "xls" durchsuchen und voila - da habe ich auch schon meinen Dateinamen.
Nachteil dieser Lösung: Ist der Sharepoint anders aufgebaut, müsste man die Spaltennummer anpassen. Das habe ich jetzt nicht programatisch gelöst, weil sich in meiner Anwendung die gesuchte Datei immer im selben Folder befindet, sollte aber ohne zu großen Aufwand lösbar sein.
Einen "Mustersharepoint" zum probieren findet Ihr übrings hier: http://sharepoint2007development.com/Shared%20Documents/Forms/AllItems.aspx
Grüße
Fettertiger
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Dateienamen aus einem SharePoint-Ordner in Excel auslesen


Schritt-für-Schritt-Anleitung

Um die Dateinamen aus einem SharePoint-Ordner in Excel auszulesen, kannst du VBA verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und erstelle ein neues Arbeitsblatt.

  2. Füge die URL des SharePoint-Ordners in die Zelle A1 ein, z.B.:

    http://teamspace.meinefirma.com/sites/rd_currency
  3. Öffne den VBA-Editor: Drücke ALT + F11.

  4. Füge ein neues Modul hinzu:

    • Rechtsklick auf "VBAProject (dein Arbeitsblatt)"
    • Wähle "Einfügen" > "Modul"
  5. Kopiere den folgenden VBA-Code und füge ihn in das Modul ein:

    Sub DateiFinden()
       Dim Dateiname As String, i As Long, Ordner As String
       Ordner = Tabelle1.Range("A1").Value
       Tabelle1.Range("B1", "B" & Rows.Count).ClearContents 'Spalte B löschen
       Dateiname = Dir$(Ordner & "\*.xls") 'xls Dateien
       Do While Len(Dateiname) > 0
           i = i + 1
           Tabelle1.Cells(i, 2).Value = Dateiname
           Dateiname = Dir$()
       Loop
    End Sub
  6. Führe das Makro aus: Gehe zurück zu Excel, drücke ALT + F8, wähle DateiFinden aus und klicke auf "Ausführen".

Nachdem du diese Schritte befolgt hast, sollten die Dateinamen in Spalte B von Excel angezeigt werden.


Häufige Fehler und Lösungen

  • Problem: DIR funktioniert nicht auf SharePoint.

    • Lösung: Verwende eine Webabfrage, um die Daten in eine Zelle zu ziehen. Du kannst dies über Daten > Von Web tun, indem du die URL des SharePoint-Ordners eingibst.
  • Problem: Der Dateiname wird nicht angezeigt.

    • Lösung: Überprüfe, ob der Pfad in Zelle A1 korrekt ist und ob du die richtigen Dateiendungen im VBA-Code angegeben hast.

Alternative Methoden

Eine Alternative zur Verwendung von VBA ist die Nutzung einer Webabfrage, um Daten direkt in Excel zu importieren. Hier sind die Schritte:

  1. Gehe zu Daten > Daten abrufen > Aus anderen Quellen > Aus dem Web.
  2. Gib die URL des SharePoint-Ordners ein und klicke auf "OK".
  3. Wähle die gewünschten Daten aus und klicke auf "Laden". Die Dateinamen erscheinen nun in Excel.

Diese Methode ist besonders nützlich, wenn du regelmäßig die Daten aktualisieren möchtest.


Praktische Beispiele

  • Beispiel 1: Auslesen aller .xls Dateien in einem SharePoint-Ordner.
  • Beispiel 2: Verwenden der Webabfrage, um die Struktur eines SharePoint-Ordners in Excel darzustellen.

Wenn du die Dateinamen aus einem Ordner in Excel kopieren möchtest, kannst du die kopierten Daten einfach in eine andere Spalte einfügen.


Tipps für Profis

  • Programatisch anpassen: Passe den VBA-Code an, um auch andere Dateitypen auszulesen, indem du die Dateiendung in der Dir-Funktion änderst.
  • Automatisierung: Du kannst das Makro so einstellen, dass es automatisch bei jedem Öffnen der Datei ausgeführt wird, um die neuesten Dateinamen zu erhalten.

FAQ: Häufige Fragen

1. Frage
Wie kann ich Dateinamen aus einem SharePoint-Ordner auslesen, wenn ich keinen Zugriff auf VBA habe?
Antwort: Du kannst eine Webabfrage verwenden, um die Datei- und Ordnerinformationen direkt in Excel zu importieren.

2. Frage
Ist es möglich, die Dateinamen in einer bestimmten Reihenfolge anzuzeigen?
Antwort: Ja, du kannst die sortierten Dateinamen in Excel nach dem Auslesen anordnen, indem du die Sortierfunktion in Excel nutzt.

3. Frage
Wie kann ich mehrere Dateinamen in verschiedene Zellen einfügen?
Antwort: Der VBA-Code ist so konzipiert, dass er alle Dateinamen untereinander in Spalte B einfügt. Du kannst die Zelle ändern, um sie in eine andere Spalte zu verschieben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige