Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1640to1644
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

VBA Ordner auslesen ( Bezugs durch Zellwert )

VBA Ordner auslesen ( Bezugs durch Zellwert )
05.09.2018 11:42:17
udo
Guten Morgen Forum,
sollte bitte eure Hilfe beanspruchen für folgende Problematik.
Vorab - habe mir gestern über die Recherche einen Vba Code zusammengesucht und
etwas an meine Bedürfnisse angepasst. Funktioniert soweit auch .. Kern meiner Fragestellung ist die Pfadbezeichnung im Code oben ...
Const sRootPath As String = "C:\Users\......\Downloads" ' Pfad noch anpassen
Ich würde gerne diese Pfadangabe einfach auf eine Zelle ( zB. F2 in Tabelle1 )
umlegen, sprich in trage dort den Pfad in Textform ein ... und der Code prüft als Bezug diesen Zelleintrag und sucht dann dort ...
Hier mal der ganze Code zum Ordner auslesen wie ich ihn verwende,
Von hier ab :
Option Explicit
Option Compare Text
Const sRootPath As String = "C:\Users\......\Downloads" ' Pfad anpassen - ohne Backslash am Ende !
Private lRowCounter As Long
Private oSheet As Object

Public Sub MWDateienMitUnterordnernAuslesen()
'        _
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
' Dim sRootPath As String
'sRootPath = [F1].Text
'       Set oSheet = Sheets.Add ' wenn in ein neues Tabellenblatt eingelesen werden soll
Set oSheet = Sheets("Tabelle1")
oSheet.Activate
oSheet.Cells(1, 2).Select
lRowCounter = 12 ' beginnt ab Zeile 12 einzutragen
Call MWReadSubFolder(sRootPath)
Set oSheet = Nothing
End Sub


Private Sub MWReadSubFolder(ByVal sPath As String)
'        _
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Dim oFSO As Object
Dim oFolder As Object
Dim oSubFolder As Object
Dim oFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.getfolder(sPath)
With oSheet
For Each oSubFolder In oFolder.subfolders
'                Alle Dateien auflisten
For Each oFile In oSubFolder.Files
.Cells(lRowCounter, 2) = oSubFolder.Path   ' definiert die 1. Spalte in    _
_
_
der eingetragen wird
.Cells(lRowCounter, 3) = oFile.Name           ' def. die 2. Spalte ...
lRowCounter = lRowCounter + 1
Next oFile
'               Alle Unterverzeichnisse verarbeiten (rekursiv)
Call MWReadSubFolder(oSubFolder.Path)
Next oSubFolder
End With
Set oFSO = Nothing
Set oFile = Nothing
Set oFolder = Nothing
Set oSubFolder = Nothing
End Sub
bis hier :
Großen Dank & Grüße udo

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Ordner auslesen ( Bezugs durch Zellwert )
05.09.2018 12:28:10
Rudi
hallo,
lösche
Const sRootPath As String = "C:\Users\......\Downloads"
und nimm die Auskommentierung der ersten beiden Zeilen zurück.
Public Sub MWDateienMitUnterordnernAuslesen()
'        _
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Dim sRootPath As String
sRootPath = [F1].Text

Gruß
Rudi
hmmmm, Danke Rudi, jedoch ...
05.09.2018 15:40:36
udo
wenn ich dies so mache , worauf Beziehe ich mich dann ( sprich an welcher Stelle verweise ich auf den Zellwert in zB F1 ?
Lieben Dank, udo
AW: VBA Ordner auslesen ( Bezugs durch Zellwert )
05.09.2018 14:45:07
fcs
Hallo Udo,
Anpasung z.B. so:
Option Explicit
Option Compare Text
Private lRowCounter As Long
Private oSheet As Object
Public Sub MWDateienMitUnterordnernAuslesen()
' zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Dim sRootPath As String
'       Set oSheet = Sheets.Add ' wenn in ein neues Tabellenblatt eingelesen werden soll
Set oSheet = Sheets("Tabelle1")
sRootPath = oSheet.Range("F2").Text ' Pfad einlesen - ohne Backslash am Ende !
oSheet.Activate
oSheet.Cells(1, 2).Select
lRowCounter = 12 ' beginnt ab Zeile 12 einzutragen
Call MWReadSubFolder(sRootPath)
Set oSheet = Nothing
End Sub
Gruß
Franz
Anzeige
Viele Dank Franz, passt schon prima , jetzt ...
05.09.2018 16:01:17
udo
... fällt mir gerade auf, wenn ich in diese Bezugszelle ( F1 ) also verschiedene Pfadangaben zum Testen durchspiele, dann scheint die Prozedur soweit richtig abzulaufen ...
Es werden beinahe alle Daten jeweils gefunden ...
Doch es gibt warum auch immer einige Aussetzer !
zB. gebe ich einen Ordner an in dem nur Exceldateien liegen, dann listet er mir diese nicht, genauso bei mp3 oder videoformat h264 ( das wären unsere Messdaten ) ... Dokumente usw. findet der Code.
Bitte entschuldige sollte dies von der ursprüngl. noch abweichen, es betrifft eben aber diesen
Code und wird mir erst jetzt sichtbar.
Habt ihr da noch eine Idee an welcher STelle ich da evtl. nachbessern müsste.
Ansonsten danke ich Euch beiden sehr - vielen lieben Dank für eure Hilfe !!!
Gruß udo
Anzeige

315 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige