Anzeige
Archiv - Navigation
1948to1952
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

Listbox mit Nanem Bilddateien füllen jpg bmp gif

Listbox mit Nanem Bilddateien füllen jpg bmp gif
15.10.2023 09:38:39
Roland
Schönen guten Morgen,

ich habe eine Frage an die Profis unter euch! Wie man eine Listbox mit einem einzelnen Dateityp befüllt, habe ich bereits erfolgreich hinbekommen. Hier gibt es unzählige Infos darüber. Allerdings habe ich nirgendwo einen Hinweis gefunden, wie ich mehrere Dateitypen in einem Aufwasch eingelesen bekomme. Es geht darum, dass ich derzeit nur JPG Dateien in eine Listbox einlese. Jetzt möchte ich aber, dass er alle Bild-Dateien jedes Dateityps in einem speziellen Verzeichnis berücksichtigt. Toll wäre noch, wenn er mir als Eigenschaft Höhe und Breite ausliest und in die mehrspaltige Listbox einliest, ist aber kein „muss“.

Kann mich hierbei jemand unterstützen?
Lieben Dank

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

Betreff
Datum
Anwender
Anzeige
AW: Listbox mit Nanem Bilddateien füllen jpg bmp gif
15.10.2023 09:46:34
Oberschlumpf
Hi Roland,

zeigst du bitte mal per Upload eine Bsp-Datei mit Bsp-Daten, mit deinem Code, mit der Listbox?`

Ciao
Thorsten
AW: Listbox mit Nanem Bilddateien füllen jpg bmp gif
15.10.2023 11:18:55
Alwin Weisangler
Hallo Roland,

auf die Schnelle so:



Do While Datei > ""
If Not InStr(1, Datei, ".jpg") = 0 Or Not InStr(1, Datei, ".gif") = 0 Or Not InStr(1, Datei, ".bmp") = 0 Then
ListBox1.AddItem Datei
ListBox1.List(ListBox1.ListCount - 1, 1) = strOrdner & Datei
End If
Datei = Dir()
Loop


Gruß Uwe
Anzeige
AW: Listbox mit Nanem Bilddateien füllen jpg bmp gif
15.10.2023 11:25:50
Alwin Weisangler
Sorry, da fehlte noch diese Änderung:


Datei = Dir(strOrdner)


Gruß Uwe
AW: Listbox mit Nanem Bilddateien füllen jpg bmp gif
15.10.2023 11:30:58
Oberschlumpf
na Uwe,

mit VBA bescheiden wird Roland vllt nicht wissen, wo genau er deine Korrektur verwenden muss.
Ändert er das, was da schon steht, erhält er als Ergebnis immer genau 1 Datei, und Do/Loop wird zum Rennen ohne Ende ;-)

Ciao
Thorsten
AW: Listbox mit Nanem Bilddateien füllen jpg bmp gif
15.10.2023 11:45:02
Alwin Weisangler
@ Thorsten,
das ist so nicht ganz richtig.
Der Ausstieg aus der Schleife bleibt ja drin. Lediglich der Platzhalter beim Einlesen von Datei muss raus.
Dafür werden via instr. diese 3 Dateitypen übergeben. Wenn Datei "" ist bricht der Loop ab.
anbei die Sache meinen beiden Threads noch mal zusammengefasst:


Datei = Dir(strOrdner)
Do While Datei > ""
If Not InStr(1, Datei, ".jpg") = 0 Or Not InStr(1, Datei, ".gif") = 0 Or Not InStr(1, Datei, ".bmp") = 0 Then
ListBox1.AddItem Datei
ListBox1.List(ListBox1.ListCount - 1, 1) = strOrdner & Datei
End If
Datei = Dir()
Loop


Gruß Uwe
Anzeige
AW: Listbox mit Nanem Bilddateien füllen jpg bmp gif
15.10.2023 12:02:05
Oberschlumpf
Hi Uwe,

hätte Roland deine "auf die Schnelle"-Idee aber so eingesetzt, wie von mir befürchtet...


Do While Datei > ""
If Not InStr(1, Datei, ".jpg") = 0 Or Not InStr(1, Datei, ".gif") = 0 Or Not InStr(1, Datei, ".bmp") = 0 Then
ListBox1.AddItem Datei
ListBox1.List(ListBox1.ListCount - 1, 1) = strOrdner & Datei
End If
Datei = Dir(strOrdner) '...nämlich hier...
Loop

...dann gäbe es keinen Ausstieg aus der Schleife.

Aber nun gut, du hast ja die korrekte Anwendung gezeigt - die aber bis eben nich da war ;-)

Ciao
Thorsten
Anzeige
AW: Listbox mit Nanem Bilddateien füllen jpg bmp gif
15.10.2023 12:11:36
Roland
Erstmal vielen lieben Dank für den Code, der funktioniert perfekt!

Kann mir noch jemand auf die Sprünge helfen, wie ich die Höhe und Breite des Bildes übergeben bekomme ?
Bislang habe ich das hiermit gemacht, führte aber immer wieder zu Fehlinterpretationen.. Warum, keine Ahnung.
Insbesondere, wenn vorher die Bilder manuell im Ordner gedreht wurden, kam es zu Fehlern.
Kann es hierbei vl sein, dass die Exif Eigenschaften nicht mehr geändert werden, wenn man mit dem Foto von Windows gedreht hat ?

Private Function Bildgroesse_ermitteln(Quelldatei As String)

Dim objPicture As IPictureDisp
Dim Hoehe as Long
Dim Breite as Long

Set objPicture = LoadPicture(ListBox1.List(ListBox1.ListIndex, 1))
Breite = objPicture.Width
Hoehe = objPicture.Height
Set objPicture = Nothing

If Hoehe / Breite > 1 Then Format = "QV" 'Querformat
If Hoehe / Breite = 1 Then Format = "QT" 'Qudratformat
If Hoehe / Breite 1 Then Format = "HV" 'Hochformat

End Function
Anzeige
AW: Listbox mit Nanem Bilddateien füllen jpg bmp gif
15.10.2023 13:05:56
Alwin Weisangler
Hallo Roland,

Der Fehler entsteht, weil die Variable in der Initialize Prozedur nur deklariert ist und nicht Klassenweit in dem Userform erreichbar ist.
Warum im Ganzen Modul erreichbar:
Du willst ja sicherlich so wie bei mir im Beispiel was mit HV, QV und QT machen (verarbeiten) und da braucht diese Variable in der ganzen Klasse (Modul des Userforms) verfügbar.
dann so:


Option Explicit
Dim Format As String

Private Sub ListBox1_Click()
With Tabelle1
Bildgroesse_ermitteln (ListBox1.List(ListBox1.ListIndex, 1))
Cells(2, 2) = Format
End With
End Sub

Private Sub Userform_initialize()
Call Listbox1_initialisieren

End Sub
Private Sub Listbox1_initialisieren()

Dim Datei As String
Dim A As Boolean
Dim i As Long
Dim strOrdner As Variant
Dim Aufloesung As String
Dim Breite As Long
Dim Hoehe As Long


strOrdner = "D:"

ListBox1.Clear
Me.ListBox1.ColumnCount = 2
Me.ListBox1.ColumnWidths = "50;50"

Datei = Dir(strOrdner)
Do While Datei > ""
If Not InStr(1, Datei, ".jpg") = 0 Or Not InStr(1, Datei, ".gif") = 0 Or Not InStr(1, Datei, ".bmp") = 0 Then
ListBox1.AddItem Datei
ListBox1.List(ListBox1.ListCount - 1, 1) = strOrdner & Datei
End If
Datei = Dir()
Loop
End Sub

Private Function Bildgroesse_ermitteln(Quelldatei As String)
Dim objPicture As IPictureDisp
Dim Hoehe As Long
Dim Breite As Long

Set objPicture = LoadPicture(ListBox1.List(ListBox1.ListIndex, 1))
Breite = objPicture.Width
Hoehe = objPicture.Height
Set objPicture = Nothing

If Hoehe / Breite > 1 Then Format = "QV" 'Querformat
If Hoehe / Breite = 1 Then Format = "QT" 'Qudratformat
If Hoehe / Breite 1 Then Format = "HV" 'Hochformat

End Function



Gruß Uwe
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige