Hallo,
ich habe gerade die Funktion ordnerinhalt im Listenfeld in meiner Anwendung eingebaut.
funtioniert einwandfrei,jedoch wird der komplette Link (addItem) angezeigt.
Private Sub CommandButton1_Click()
Const Verz = "c:\temp"
Dim Datei As Object, Ordner As Object, FSO As Object
Set FSO = CreateObject("Scripting.filesystemobject")
Me.Liste1.RowSource = ""
For Each Datei In FSO.getfolder(Verz).Files
Me.Liste1.AddItem Datei
Debug.Print Datei
Next
For Each Ordner In FSO.getfolder(Verz).subfolders
Me.Liste1.AddItem Ordner
Next
Ist es möglich dass lediglich der Dateiname angezeigt wid, also anstatt: "c:\users\Dokumente\Ordner\etc\Rechnung.pdf" nur in diesem Fall "Rechnung.pdf" ?
Liebe Grüße aus dem Ruhrgebiet,
Lars
Hallo,
ja, kein Problem.
Du kannst mit InstrRev die Position des letzten Backslashs bestimmen und ab dort hast Du den Dateinamen.
Aus dem Direktbereich:
?Mid("c:\users\Dokumente\Ordner\etc\Rechnung.pdf",InStrRev("c:\users\Dokumente\Ordner\etc\Rechnung.pdf","\")+1)
Rechnung.pdf
Hallo Klaus,
mein vba-Code sieht wie folgt aus:
Dim strPfadDatei As String
Dim CurrentUser As String
On Error GoTo Err_Ordner_öffnen
CurrentUser = Environ("UserName")
If DLookup("Abfrage1", "01Systemdaten") = True Then
strPfadDatei = "C:\Users\" & CurrentUser & "\OneDrive\Dokumente\" & Me.RechnungsnummerDruck & "-" & Me.Name
Else
strPfadDatei = DLookup("pdfPfad", "01Systemdaten") & Me.RechnungsnummerDruck & "-" & Me.Name
End If
Dim Verz As String
Verz = strPfadDatei
Dim Datei As Object
Dim Ordner As Object
Dim FSO As Object
Set FSO = CreateObject("Scripting.filesystemobject")
Me.List1.RowSource = ""
For Each Datei In FSO.GetFolder(Verz).Files
Me.List1 = Mid(Verz, InStrRev(Verz, "\") + 1)
'Me.List1.AddItem Datei
Next
For Each Ordner In FSO.GetFolder(Verz).SubFolders
Me.List1 = Mid(Verz, InStrRev(Verz, "\") + 1)
'Me.List1.AddItem Ordner
Next
Exit Sub
Leider wird nichts angezeigt ... :(
Gruß,
Lars
Hallo,
gehe den Code im Einzelschritt durch und schau Dir dabe den Inhalt der Variablen an.
Hallo Klaus
mit dieser Version For Each Datei In FSO.GetFolder(Verz).Files
Me.List1.AddItem Datei
Next
For Each Ordner In FSO.GetFolder(Verz).SubFolders
Me.List1.AddItem Ordnerwird der Inhalt des Ordners angezeigt, allerdings der komplette Link
wie schon beschrieben sollte der Übewrsicht wegen nur den Namen der Datei angezeigt werden.
Gruiß,
Lars
Hallo,
was genau steht in Datei und was in Ordner ?
in der Datei
'C:\Users\OneDrive\Dokumente\Dokumente\23050277-Name\Sterbeurkunde Name.pdf'
es ist kein Ordner vorhanden
Hallo,
versuche es mal so:
...
For Each Datei In FSO.GetFolder(Verz).Files
Me.List1.AddItem Mid(Datei, InStrRev(Datei, "\") + 1)
Next
For Each Ordner In FSO.GetFolder(Verz).SubFolders
Me.List1.AddItem Left(Datei, InStrRev(Datei, "\"))
....
Was genau willst Du im Listenfeld anzeigen?
Hallo Klaus,
ich möchte nur den Datinamen im Ordner im Listenfeld anzeigen.
jetzt funktioniert es ...
Danke.
Gruß,
Lars
@tismo,
du arbeitest hier ja mit Objekten, die auch jede Menge Informationen über eine Datei oder Ordner mitliefern.
Über Datei.Name bekommst du z.B. das gewünschte geliefert.
Wenn man nicht weiß, welche Infos ein Objekt liefert kann man z.B. in der Dokumentation schauen, oder im Objektkatalog, oder einfach in der Entwicklungsumgebung einen Haltepunkt setzen und dann kannst du zur Laufzeit bzw. beim Debuggen im Lokalfenster alle Eigenschaften eines Objektes ansehen.