PDA

Vollständige Version anzeigen : Datei nach Zufalssprinzip auswählen


Harilo
06.07.2009, 15:43
Hallo Leute,

in einer Userform habe ich ein Image erstellt. Diesem Image habe ich Bitmap als Picture zugeordnet. Dieses Picture möchte ich nun zu Auflockerung bei jedem Aufruf ändern. Manuell klappt das auch sehr gut mit

Image2.Picture = LoadPicture("U:\Töne\gif\roemer-27613.gif")

nun möchte ich aber bei jedem neuen Aufruf ein neues Bild laden, und dieses nach einem Zufallsprinzip. Da die Namen ja aber unterschiedlich sind, Geht das auch mit so was wie die x.te Datei in einem Ordner?

Gruß Harilo

EarlFred
07.07.2009, 10:14
Hallo Harilo,

folgender Code sucht Dir alle (im Beispiel .bmp-Dateien) aus einem vorgegebenen Verzeichnis und schreibt die Dateinamen in ein Array. Anschließend wird ein zufälliges Element wieder ausgelesen. Dieses kannst Du dann zur Zuweisung verwenden.

Option Explicit
Sub Zufallsbild()
Dim strDatnam As String
Dim arrDateien() As String
Dim lngRandom As Long

ReDim arrDateien(0)
strDatnam = Dir("C:\Temp\*.bmp")
Do
ReDim Preserve arrDateien(0 To UBound(arrDateien) + 1)
arrDateien(UBound(arrDateien)) = strDatnam
strDatnam = Dir
Loop Until strDatnam = ""
lngRandom = Int(Rnd() * UBound(arrDateien)) + 1
strDatnam = arrDateien(lngRandom)
End Sub


Grüße
EarlFred

Harilo
09.07.2009, 14:41
Hallo EarlFred,
vielen Fank für den Hinweis, ich brauchte nur ein paar kleine Änderungen vornehmen um es im Gesamtkonzept arbeiten zu lassen. Das Tool macht nun genau was es soll.
Danke

P.S. wie kann ich denn nun den Vorgang als erledigt kennzeichnen?

EarlFred
09.07.2009, 14:57
Hallo Harilo,

freut mich, wenn ich helfen konnte.

Du müsstest (wenn ich auf Dein Registrierungsdatum schaue: vor langer Zeit) eine E-Mail vom Forum erhalten haben mit einem Link zur Aktivierung Deines Accounts. Wenn Du diese Mail nicht mehr finden solltest, fordere einfach eine neue an und folge dem Link. Dann sollte es klappen mit dem "als erledigt" abhaken.

Grüße
EarlFred

P.S.: Hier jinx' Post, den ich eben nicht auf die Schnelle gefunden habe:
http://www.ms-office-forum.net/forum/showpost.php?p=1228489&postcount=11