Microsoft Excel

Herbers Excel/VBA-Archiv

bei jedem start der Userform ein neues bild laden


Betrifft: bei jedem start der Userform ein neues bild laden
von: Steffen A
Geschrieben am: 11.02.2019 14:09:03

Hallo zusammen,

ich möchte in meiner Userform über einer Image1 Bilder laden, die in einen Ordner sind.
Aber es soll nicht immer das gleiche Bild sein, sondern es soll bei jeden Start der Userform ein anderes Bild anzeigt werden.
Es soll aber KEINE Diashow sein.

Meine Frage: Geht das überhaupt und wenn ja wie?
Für Vorschläge wäre ich sehr dankbar

Gruß Steffen

  

Betrifft: AW: bei jedem start der Userform ein neues bild laden
von: JoWE
Geschrieben am: 11.02.2019 14:37:44

Hallo Steffen,

angenommen Du hast 25 Bilder, dann solltest Du die Bilder mit "1.jpg" bis "25.jpg" benennen.
Unmittelbar vor dem Start der UF kann per Zufallszahl ein Dateiname ausgewählt werden: bildNr=Int((25 * Rnd) + 1).&".jpg".

Gruß
Jochen


  

Betrifft: AW: bei jedem start der Userform ein neues bild laden
von: Steffen A
Geschrieben am: 11.02.2019 15:48:06

Hallo Jochen

Danke für die schnelle Antwort. Aber mein Vba ist nicht so dolle. Ich weiß zwar wie ein Bild über Image1 lade aber nur über die Eigenschaften.
Wie das in einen Code aus zusehen hat, da bin ich noch nicht so erfahren.

Kannst du mir eine Hilfestellung geben?


Gruß Steffen


  

Betrifft: AW: bei jedem start der Userform ein neues bild laden
von: JoWE
Geschrieben am: 11.02.2019 18:55:29

hallo Steffen,

z.B. so:

Private Sub UserForm_Initialize()
    Dim myPicture As String
    myPicture = Int((25 * Rnd) + 1) & ".jpg"
    Me.Image1.Picture = LoadPicture("D:\Daten\Bilder\" & myPicture) 'Pfad anpassen
End Sub
Gruß
Jochen


  

Betrifft: AW: bei jedem start der Userform ein neues bild laden
von: Steffen A
Geschrieben am: 12.02.2019 15:34:23

Hallo Jochen

Danke für deine Antwort. Habe deinen Code ausprobiert und funktioniert prima.
Jetzt noch eine frage: Wenn ich die Excel Datei starte, wird immer das gleiche Bild angezeigt. Warum?

Hier ist die mal die Datei: http://www.herber.de/bbs/user/127603.xlsm

Gruß Steffen


  

Betrifft: AW: bei jedem start der Userform ein neues bild laden
von: JoWE
Geschrieben am: 12.02.2019 17:04:58

versuchs mal so:

Private Sub UserForm_Activate()
    Dim myPicture As String
    Randomize
    myPicture = Int((29 * Rnd) + 1) & ".jpg"
    Me.Image2.Picture = LoadPicture("C:\Users\Adios\Desktop\test\" & myPicture) 'Pfad anpassen
End Sub



  

Betrifft: AW: bei jedem start der Userform ein neues bild laden
von: JoWE
Geschrieben am: 12.02.2019 17:12:02

siehe zu "Randomize":
https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/randomize-statement


  

Betrifft: AW: bei jedem start der Userform ein neues bild laden
von: Steffen A
Geschrieben am: 12.02.2019 17:21:29

Hallo Jochen

Danke für deine schnelle Antwort funktioniert alles bestens.

Gruß Steffen