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

Anzahl der Dateien ausgeben

Anzahl der Dateien ausgeben
15.09.2022 13:26:14
Hans
Hallo,
mit der Zeile:

Dim var As Variant
var = Application.GetOpenFilename(FileFilter:="Bilder (*.jpg), *.jpg", Title:="Bilder", MultiSelect:=True)
wähle ich mit dem sich öffnenden Dialog mehrere Bilddateien aus. Besteht die Möglichkeit die Anzahl der ausgewählten Dateien als Zahl auszugeben, die in var hinterlegt wurden? Wird später für einen Fortschrittsbalken benötigt.
Vielen Dank für Eure Hilfe schon vorab.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Anzahl der Dateien ausgeben
15.09.2022 13:37:20
ChrisL
Hi Hans

UBound(var)
cu
Chris
AW: Anzahl der Dateien ausgeben
15.09.2022 13:40:40
Daniel
Hi
die Anzahl der Elemente eines eindimensionalen Arrays berechnet sich aus dem Index des ersten und letzten Elements (LBound, Ubound):

Anzahl = UBound(var) - LBound(var) + 1
da der untere Index bei automatisch erzeugen Arrays immer gleich ist (0 oder 1, je nach Quelle), kann man das vereinfachen, ist die Basis 1 (so wie hier) reicht natürlich

Anzahl = Ubound(var)
alternativ ginge auch das hier, das würde auch die Elemente in einem mehrdimensionalen Array bestimmen.

Anzahl = Worksheetfunction.CountA(var)
Gruß Daniel
Anzeige
AW: Anzahl der Dateien ausgeben
15.09.2022 13:53:57
Hans
Super. Vielen Dank, das hat funktioniert. LBound war das, was ich gesucht habe.
Noch eine ergänzende Frage:
Kann man aus dieser Funktion

    strFilename = Dir$(Input_Folder & "*.jpg")
Do Until strFilename = vbNullString
'Code....
strFilename = Dir$
Loop
eine Schleife mit i über alle Dateien des Verzeichnisses machen. Mit dem Do Loop bearbeitet er ja alle solange, bis keine mehr vorhanden ist. Für meinen Fortschrittsbalken bräuchte ich aber eine Art counter.
Sowas wie...
for i = 1 to ?
Kann man sowas anders schreiben? Würde mir weiterhelfen, da ich i und ? dann abgreifen könnte.
Anzeige
AW: Anzahl der Dateien ausgeben
15.09.2022 14:55:02
Daniel
Hi
ggf kannst du über das FileSystem-Object ermitteln, wieviele Elemente es für diese Einstellung gibt.
ansonsten kannst du auch die Do-Loop-Schleife erstmal leer durchlaufen lassen und nur den Zähler hochzählen, damit du weißt wieviele Elemente es gibt.
Dabei kannst du auch gleich die Dateinamen sammeln und dann dieses Array abarbeiten.

 strFilename = Dir$(Input_Folder & "*.jpg")
Do Until strFilename = vbNullString
strSammel = strSammel & vblf & strFilename
strFilename = Dir$
Loop
arrSammel = split(strSammel, vblf)
for i = 1 to ubound(arrSammel)
strFilename = arrSammel(i)
'.. hier der Code
Next
i und Ubound(arrSammel) kannst du für deinen Fortschrittsbalken verwenden.
Wenn allerdings schon das "leere" Druchlaufen von DIR ohne weitere Aktion so lange dauert, dass es einen Balken benötigt, müsstest du dich dann doch mal mit FileSystem-Object beschäftigen.
Wenn das Makro nicht ganz unbegleitet laufen soll, kannst du dir das DIR auch sparen.
mit GetOpenFileName und setz den Filter auf die JPG-Dateien (steht in der Hilfe). mit STRG+A kannst du dann alle im Verzeichnis selektieren und die Schleife darüber laufen lassen.
Gruß Daniel
Anzeige
AW: Anzahl der Dateien ausgeben
15.09.2022 15:47:14
Hans
Du hast mich auf die richtige Spur gebracht. Ich habe jetzt erst die Dateien innerhalb des Ordners zählen lassen und dann mit einem Anz=Anz+1 den Loop abgearbeitet. Funktioniert.
Vielen lieben Dank für die Hilfe!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige