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

Image mit SpinButton auswählen

Image mit SpinButton auswählen
Kev
Guten morgen alle zusammen,
habe einwenig gegoogelt und folgenden Code gefunden. Wäre dankbar wenn mir jemand bei dem Code helfen könnte.
Bekomme nur das 1 Bild rein, sind aber ca. 1000 Bilder.
Und im TexBox sollte die Bezeichnung vom Bild stehen, und im Label1 soll es ab der Zahl 1 gezählt werden.
Hier mal die Beispielmappe
https://www.herber.de/bbs/user/73977.xls
Und das ist der folgende Code:
Private Sub SpinButton1_Change()
Dim verz As String
Dim str As String
Dim Fotos() As Variant
Dim i_zaehler As Long
Dim i_zaehler2 As Long
Dim fs As Object
Dim Folder
Dim objDatei As Object
With UserForm1
.SpinButton1.Min = 0
'verz = InputBox("Please enter the image directory: ")
'verz = verz & "Issue" & ToDo.TextBox9.Value 'Issue No.
verz = "H:\Test\"
' Ermittelt die Anzahl der Bilder im Verzeichnis
Set fs = CreateObject("Scripting.FileSystemObject")
Set Folder = fs.Getfolder(verz)
For Each objDatei In Folder.Files
i_zaehler = Folder.Files.Count
Next
.SpinButton1.Max = i_zaehler
'Lesen der Fotos in ein Array
ReDim Fotos(i_zaehler)
For Each objDatei In Folder.Files
Fotos(i_zaehler2) = verz & objDatei.Name
Next
'Lesen der Fotos in ein Array
'Ausgabe des Spinbutton in ein Textfeld
'Ausgabe der Labeltextes
'Laden des Bildes
.TextBox1.Text = .SpinButton1.Value
.Label1.Caption = Fotos(.SpinButton1.Value)
'MsgBox Fotos(.SpinButton1.Value) ' hier liegt das Problem, das Array bleibt leer!?
.Image1.Picture = LoadPicture(Fotos(.SpinButton1.Value))
End With
End Sub

Gruß Kevin

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

Betreff
Benutzer
Anzeige
AW: Image auswählen
16.03.2011 11:07:42
Kev
Hallo,
habe einen Fehler beheben können. Und zwar anstatt TextBox das es im Label1 erscheint.
Wie bekomme ich aber das bei SpinButton betätigen jedes Bild angezeigt wird?
Bekomme nur das erste Bild, und die restlichen erscheinen nicht.
Aber SpinButton zählt dann schon bis zur Anzahl der Bilder.
Gruß Kevin
AW: Image auswählen
16.03.2011 12:47:09
Rudi
Hallo,
so ein Quatsch:
For Each objDatei In Folder.Files
i_zaehler = Folder.Files.Count
Next
Da wird die Schleife 1000x durchlaufen, ohne dass sich i_zaehler ändert.
Einfach: i_zaehler = Folder.Files.Count
Auch Unsinn, da sich i_zaehler2 nicht ändert:
For Each objDatei In Folder.Files
Fotos(i_zaehler2) = verz & objDatei.Name
Next
Kein Wunder, dass das Array leer bleibt.
Ergo
For Each objDatei In Folder.Files
Fotos(i_zaehler2) = verz & objDatei.Name
i_zaehler2=i_zaehler2 + 1
Next
Darüber hinaus: Die Prozedur im SpinButton_Change unter zu bringen ist Unsinn. Viel zu langsam.
Option Explicit
Dim arrFotos
Private Sub SpinButton1_Change()
Image1.Picture = LoadPicture(arrFotos(SpinButton1))
Label1 = "Bild " & SpinButton1 + 1
TextBox1 = arrFotos(SpinButton1)
Repaint
End Sub
Private Sub UserForm_Activate()
Dim oFotos As Object, sFile As String
Set oFotos = CreateObject("Scripting.Dictionary")
Const Verz As String = "c:\test\"
sFile = Dir(Verz & "*.jpg")
Do While sFile  ""
oFotos(Verz & sFile) = 0
sFile = Dir
Loop
arrFotos = oFotos.keys
SpinButton1.Max = oFotos.Count - 1
TextBox1 = arrFotos(0)
Image1.Picture = LoadPicture(arrFotos(0))
Label1 = "Bild 1"
Label2 = " von " & oFotos.Count
End Sub

Gruß
Rudi
Anzeige
AW: Image auswählen
16.03.2011 12:53:05
Kev
Hallo Rudi,
Danke für deine nette Unterstützung.
"Darüber hinaus: Die Prozedur im SpinButton_Change unter zu bringen ist Unsinn. Viel zu langsam."
Wo sollte ich den Code sonst unterbringen?
Jetzt passt es wenigstens mit den Bildern anzeigen. Danke nochmal.
Gruß Kevin
AW: Image auswählen
16.03.2011 13:32:36
Rudi
Hallo,
Wo sollte ich den Code sonst unterbringen? 

So wie in meinem Code. Einlesen der Dateinamen 1x im Activate-Ereignis und gut ist. Dann werden die Namen nur noch aus dem Array gelesen und nicht bei jedem SpinButton_Change.
Gruß
Rudi
AW: Image auswählen
16.03.2011 20:24:52
amintire
Hallo Rudi,
bekomme aber bei deinem Code einen Fehler.
Der Bereich wird gelb markiert:
Image1.Picture = LoadPicture(arrFotos(SpinButton1))
Ansonsten funktioniert der Code von mir mit deinen Änderungen super.
Gruß KeV
Anzeige
AW: ***
16.03.2011 20:27:22
Kevin
Funktioniert einwandfrei. Vielen Dank für Eure Hilfe.
Gruß Kevin

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige