Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1228to1232
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

worddateien aus Verzeichnis auflisten

worddateien aus Verzeichnis auflisten
Silvie
Hallo Leute,
ich komm leider nicht weiter, vielleicht könnt Ihr mir mal helfen. Ich möchte in einer Excel-Datei per Makro alle Worddateien auflisten die sich in einem bestimmten Verzeichnis befinden. Hab da auch was gefunden, aber es funktioniert nicht so richtig.
Das Verzeichnis und der Pfad stehen in B1, die gefundenen Dateien sollen ab B36 aufgelistet werden. Am besten wäre noch ein Hyperlink, damit man die Dateien direkt von dort aus öffnen könnte. Das krieg ich leider mit meinem Halbwissen nicht hin.
Dim arr As Variant
Dim sPath As String, sPattern As String
Dim sFile As String

Sub Einlesen()
sPath = "Range(B1)"
sPattern = "*.doc"
arr = arrAll(sPath, sPattern)
For iCounter = 1 To UBound(arr)
Cells(iCounter, 1) = sPath & arr(iCounter)
Next iCounter
End Sub


Function arrAll(sPath As String, sPattern As String) As Variant
Dim arr()
If Right(sPath, 1) "\" Then sPath = sPath & "\"
sFile = Dir(sPath & sPattern)
Do While sFile ""
iCounter = iCounter + 1
ReDim Preserve arr(1 To iCounter)
arr(iCounter) = sFile
sFile = Dir()
Loop
arrAll = arr
End Function

Vielen Dank schonmal!
LG
Silvie

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Pfad
09.09.2011 10:08:26
Erich
Hi,
der Pfad heißt doch wohl nicht "Range(B1)", sondern so, wie es in Zelle B1 steht.
Range(B1) geht auch nicht.
Ersetze mal
sPath = "Range(B1)"
durch
sPath = Range("B1")
oder
sPath = Range("B1").Value
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
MsgBox-Test
09.09.2011 10:10:04
Erich
Hi,
probier mal
MsgBox "Range(B1)"
MsgBox Range("B1")
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: worddateien aus Verzeichnis auflisten
09.09.2011 10:26:11
Silvie
Hallo Erich,
vielen Dank für Deine Antwort. Habe Range geändert in Range("B1"), funktioniert aber immer noch nicht...
LG
Silvie
Rückfragen
09.09.2011 10:31:35
Erich
Hi,
deine Fehlerbeschreibung ist ein wenig mager - freundlich ausgedrückt.
Was bedeutet "funktioniert nicht" genau?
Gibt es eine Fehlermeldung? Wdenn ja: Welche (Nr. + Text, in welcher VBA-Zeile?)
Ist das Ergebnis falsch?
Gibt es das Verzeichnis in B1?
Stehen da doc-Dateien drin?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Rückfragen
09.09.2011 11:26:35
Silvie
ja, Schuldigung!
Fehler:
Laufzeitfehler 9
Index außerhalb des gültigen Bereichs
Hab mal eine Beispieldatei angehängt.
https://www.herber.de/bbs/user/76539.xlsm
Gruß
Silvie
AW: Rückfragen
09.09.2011 11:57:47
Rudi
Hallo,

Option Explicit
Sub Einlesen()
Dim sPath As String, sPattern As String, rngC As Range, arr
sPath = Range("B1").Value
sPattern = "*.doc"
arr = arrAll(sPath, sPattern)
Cells(36, 2).Resize(UBound(arr) + 1) = Application.Transpose(arr)
For Each rngC In Cells(36, 2).Resize(UBound(arr) + 1).Cells
ActiveSheet.Hyperlinks.Add _
Anchor:=rngC, _
Address:=rngC.Text, _
TextToDisplay:=rngC.Text
Next
End Sub
Function arrAll(sPath As String, sPattern As String) As Variant
Dim objFiles As Object, sFile As String
Set objFiles = CreateObject("Scripting.dictionary")
If Right(sPath, 1)  "\" Then sPath = sPath & "\"
sFile = Dir(sPath & sPattern)
Do While sFile  ""
objFiles(sPath & sFile) = 0
sFile = Dir()
Loop
arrAll = objFiles.Keys
End Function

Gruß
Rudi
Anzeige
Keine Datei gefunden?
09.09.2011 12:05:57
Erich
Hi,
in welcher VBA-Zeile der Fehler auftritt, hast du nicht geschrieben - warum?
Ich vermute die Zeile "For iCounter = 1 To UBound(arr)".
Da tritt der Fehler auf, wenn in dem Verzeichnis keine doc-Datei gefunden wird.
Probier mal dies:

Option Explicit               ' immer zu empfehlen
Sub Einlesen()
Dim sPath As String, sPattern As String
Dim arr As Variant, iCounter As Long
sPath = Range("B1").Value
sPattern = "*.dcc"
arr = arrAll(sPath, sPattern)
If IsArray(arr) Then
For iCounter = 1 To UBound(arr)
Cells(iCounter + 35, 2) = sPath & arr(iCounter)
Next iCounter
Else
MsgBox "Keine Ausgabe"
End If
End Sub
Function arrAll(sPath As String, sPattern As String) As Variant
Dim sFile As String, arr() As String, iCounter As Long
If Right(sPath, 1)  "\" Then sPath = sPath & "\"
sFile = Dir(sPath & sPattern)
If sFile = "" Then
MsgBox "Keine Datei " & sPath & sPattern & " gefunden"
arrAll = False
Else
Do While sFile  ""
iCounter = iCounter + 1
ReDim Preserve arr(1 To iCounter)
arr(iCounter) = sFile
sFile = Dir()
Loop
arrAll = arr
End If
End Function
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Keine Datei gefunden?
09.09.2011 14:31:27
Silvie
Lieber Erich,
vielen Dank für Deine Hilfe, jetzt funktioniert's, es kommt zwar kein Hyperlink dabei raus, aber das hilft mir auch schon weiter.
Kannst Du mir jetzt noch sagen, wie das Makro aussehen muß wenn ich ich das Speicherdatum sehen möchte?
LG
Silvie
Antworten
09.09.2011 16:17:22
Erich
Hi,
gut fände ich, wenn du etws genauer auf Fragen antworten würdest.
Ich meine Dinge wie:
"Gibt es das Verzeichnis in B1?"
"Stehen da doc-Dateien drin?"
"in welcher VBA-Zeile der Fehler auftritt, hast du nicht geschrieben - warum?"
Trat der Fehler auf in der Codezeile "For iCounter = 1 To UBound(arr)"?
War die Fehlerursache, dass es keine doc-Datei in dem Verzeichnis gab?
Oder gab es eine andere Ursache?
Das mit dem Speicherdatum wird sich auch noch lösen lassen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige