Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Bild in Userform einfügen
25.09.2013 14:02:04
Karl-Heinz
Guten Tag liebe Forumsteilnehmer,
als Anfänger habe ich mir zur Anzeige von Bildern in einer Userform ein Makro gebastelt. Es funktioniert auch. Nur folgende Erweiterungen gelingen mir nicht:
1.) Der letzte Ordnername (hier im Beispiel "8008") unter verz soll nicht fest sondern variabel aus einer Excel-Zelle (z.B. Range ("c3") abgeleitet werden.
2.) Aus dem dann gewählten Ordner sollen nur die Bilder mit der Endung "*.jpg" aufgerufen werden. Wer kann mir für diese Ergänzung helfen?
Gruß
Karl-Heinz
Private Sub SpinButton2_Change()
Dim verz As String
Dim Fotos() As Variant
Dim i_zaehler As Long
Dim i_zaehler2 As Long
Dim fs As Object
Dim objDatei As Object
With Filialfotos
.SpinButton1.Min = 1
verz = "c:\filialen\Filialfotos\8008\"
Set fs = CreateObject("Scripting.FileSystemObject")
Set Folder = fs.Getfolder(verz)
i_zaehler = Folder.Files.Count
.SpinButton2.Max = i_zaehler
ReDim Fotos(i_zaehler)
For Each objDatei In Folder.Files
Fotos(i_zaehler2) = verz & objDatei.Name
i_zaehler2 = i_zaehler2 + 1
Next
TextBox1.Text = SpinButton2.Value
Label1.Caption = Fotos(SpinButton2.Value)
Image1.Picture = LoadPicture(Fotos(SpinButton2.Value))
End With
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bild in Userform einfügen
25.09.2013 14:11:17
Rudi
Hallo,
Private Sub SpinButton2_Change()
Dim verz As String
Dim Fotos() As Variant
Dim i_zaehler As Long
Dim i_zaehler2 As Long
Dim fs As Object
Dim objDatei As Object
With Filialfotos
.SpinButton1.Min = 1
verz = "c:\filialen\Filialfotos\" & Range("C3") & "\"
Set fs = CreateObject("Scripting.FileSystemObject")
Set Folder = fs.Getfolder(verz)
i_zaehler = Folder.Files.Count
.SpinButton2.Max = i_zaehler
ReDim Fotos(i_zaehler)
For Each objDatei In Folder.Files
If Right(objDatei.Name, 4) = ".jpg" Then
Fotos(i_zaehler2) = verz & objDatei.Name
i_zaehler2 = i_zaehler2 + 1
End If
Next
TextBox1.Text = SpinButton2.Value
Label1.Caption = Fotos(SpinButton2.Value)
Image1.Picture = LoadPicture(Fotos(SpinButton2.Value))
End With
End Sub

Gruß
Rudi
P.S. würd ich anders machen.
Fotos() als globale Var und Min/Max in UF_Initialize festlegen.

Anzeige
AW: Bild in Userform einfügen
25.09.2013 15:41:03
Karl-Heinz
Hallo Rudi,
vielen Dank für die schnelle Antwort. Im Nachhinein eigentlich einfach und logisch. Hatte mich aber zwischenzeitlich total verrannt. Hab es getestet und alles funktioniert. Toll. Wäre Deine andere angedachte Möglichkeit für mich als Anfänger noch nachvollziehbar? Vielleicht ist es vom Handling für Dich einfacher, mir einen kurzen Tipp auf einen anderen Beitrag zu diesem Konstrukt geben.
Viele Grüße
Karl-Heinz

AW: Bild in Userform einfügen
25.09.2013 16:08:19
Rudi
Hallo,
ungetestet.
Im Modul der UF
Option Explicit
Dim Fotos()
Private Sub UserForm_Activate()
Dim oFS As Object, oFolder As Object
Dim verz As String
Dim i_zaehler As Long
Dim i_zaehler2 As Long
Dim objDatei As Object
verz = "c:\filialen\Filialfotos\" & Range("C3") & "\"
Set oFS = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFS.Getfolder(verz)
i_zaehler = oFolder.Files.Count
ReDim Fotos(1 To i_zaehler)
For Each objDatei In oFolder.Files
If Right(objDatei.Name, 4) = ".jpg" Then
i_zaehler2 = i_zaehler2 + 1
Fotos(i_zaehler2) = verz & objDatei.Name
End If
Next
SpinButton2.Min = 1
SpinButton2.Max = i_zaehler
End Sub
Private Sub SpinButton2_Change()
TextBox1.Text = SpinButton2.Value
Label1.Caption = Fotos(SpinButton2.Value)
Image1.Picture = LoadPicture(Fotos(SpinButton2.Value))
End Sub

Gruß
Rudi

Anzeige
AW: Bild in Userform einfügen
25.09.2013 19:30:27
Karl-Heinz
Hallo Rudi,
vielen Dank für die Alternative. Aber, beim Testen wurde abgebrochen und in der Zeile
Label1.Caption = Fotos(SpinButton2.Value)
Fotos blau hinterlegt, mit dem Hinweis, Sub oder Function nicht definiert.
Keine Ahnung woran es liegt.
Leider habe ich erst jetzt bei der ersten Variante festgestellt, dass beim Aufrufen der Bilder nach dem sechsten Bild Schluss ist. Es wird zwar weitergezählt, aber es kommt kein Bild mehr. Habe die Bilder noch einmal kontrolliert. Es sind jpg-Dateien. Bei meinem alten Makro wurde alles abgebildet, leider auch die wmf-Dateien im Ordner.
Viele Grüße
Karl-Heinz

Anzeige
AW: Bild in Userform einfügen
25.09.2013 23:09:12
Rudi
Hallo,
dann ignorieren wir mal die Groß-Kleinschreibung im Dateinamen.
 For Each objDatei In oFolder.Files
If Right(LCase(objDatei.Name), 4) = ".jpg" Then
i_zaehler2 = i_zaehler2 + 1
Fotos(i_zaehler2) = verz & objDatei.Name
End If
Next
Gruß
Rudi

AW: Bild in Userform einfügen
25.09.2013 23:56:55
Karl-Heinz
Hallo Rudi,
Danke. Funktion jetzt 100%-ig.
Viele Grüße und gute Nacht
Karl-Heinz

157 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige