AW: Hallo Yal, klappt nicht
22.02.2022 10:55:10
Yal
Hallo Wolfgang,
natürlich funktioniert es, in der Form, nicht.
Du hast meinen Vorschlag vollständig geselen und auch vollständig verstanden, mindestens nach dem Du jeden Punkt, der Dir unklar war, gefragt hast: was ist damit gemeint?
"Eine Function ist ein Sub, die eine Werte zurückgibt (wie eine Formel)"
Es bedeutet: Du rufst diese Function nur um eine Werte zurückzubekommen.
Was könnte ein "GetFolder" zurückliefern, das irgendwie "msoFileDialogFolderPicker" heisst, und am Ende mit
If .SelectedItems.Count > 0 Then GetFolder = .SelectedItems(1)
Abschliesst? (was ist in dem Fall "SelectedItem"?)
Genau: einen Verzeichnis-Pfad.
Wo wird diese Verzeichnis-Pfad verwendet? In
Datei = Dir("C:\Users\ww\Desktop\02 Februar\*.*")
Wie kann man die beiden kombinieren?
In dem man das festes Verzeichnis durch einem Abruf von GetFolder ersetzt:
Datei = Dir(GetFolder & "\*.*")
Zusatz- -aber schwierige- Frage:
Wie kann man bewirken, dass Getfolder nicht auf "C:" startet sondern auf "C:\Users\ww\Desktop\"?
In dem man die Function eine Parameter übergibt.
also alles zusammen:
Public Sub Explorer_Dateien_kopieren()
Dim Datei As String
Datei = Dir(GetFolder("C:\Users\ww\Desktop\") & "*.*")
Do While Datei ""
ActiveSheet.Range("C9999").End(xlUp).Offset(1, 0) = Datei
Datei = Dir
Loop
End Sub
Function GetFolder(Optional StartVerzeichnis As String = "C:") As String
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.InitialFileName = StartVerzeichnis ' 0 Then GetFolder = .SelectedItems(1) & IIf(Right(.SelectedItems(1), 1) = "\", "", "\")
End With
End Function
VG
Yal