# [HELP] Imageboxen variable per Schleife bilder laden [VBA]



## WarGodNT (16. Februar 2012)

Hallo zusammen ich habe ein problem ...  ich habe etw 100 imageboxen und ich will nun auf alle ein bild laden immer ein anderes je nach text in der verlinkten tabelle 
nun will ich nicht jede imagebox einzeln überprüfen auf 3 bilder den das ging ewig also wollte ich das einmal mit einer while schleife machen ... nun da die boxen immer anders heisen "image1","image2","image3" usw.  wollte ich die nummer durch eine variabel ersetzen welche bei jedem durchlauf eins höherget habe es bereits so probiert : 


```
Private Sub UserForm_Initialize()
Dim zeilen As Integer
Dim zeilenr As Integer
Dim max As Integer
Dim i As Integer

max = ("3")
zeilen = ("1")
zeilenr = ("2")
zeilen = i

While zeilenr < max

If Range("E" & zeilenr) = "Erledigt" Then
Image(zeilen).Picture = LoadPicture("M:\haus.gif")
End If

If Range("E" & zeilenr) = "Nicht begonnen" Then
Image(zeilen).Picture = LoadPicture("M:\tree.gif")
End If

If Range("E" & zeilenr) = "In Bearbeitung" Then
Image(zeilen).Picture = LoadPicture("M:\baustelle.jpg")
End If

zeilen = zeilen + 1
zeilenr = zeilenr + 1


Wend

End Sub
```

dies ging jedoch nicht da man irgendwie im namen noch ne variabel reinpaken kann -.-

hebt ihr vileich eine lösung währe super


----------



## Yaslaw (16. Februar 2012)

*item: *Excel? ah ja, da kommt Range() drin vor. Dürfte also Das Microsoft Manager-Spielzeug sein - Excel.

*item: *Du solltest dein Code formatieren. Tabulatoren wirken Wunder was die Lesbarkeit angeht

*item: *Du solltest dich an die eigenen Definitionen halten

```
Dim zeilen As Integer

'Das folgende wird als String übergeben und muss von Excel zuerst in ein Integer gewandelt werden. Die Klammer ist ebenfalls unnützer Code
zeilen = ("1")
'So reicht es föllig aus:
zeilen = 1
```

*item: *Bitte verwende Satzzeichen im Text und Gross und Kleinschreibung


> nun will ich nicht jede imagebox einzeln überprüfen auf 3 bilder den das ging ewig also wollte ich das einmal mit einer while schleife machen ... nun da die boxen immer anders heisen "image1","image2","image3" usw. wollte ich die nummer durch eine variabel ersetzen welche bei jedem durchlauf eins höherget habe es bereits so probiert


Ich verstehs echt nicht. Auf 3 Bilder in einer While-Schleife ging es ewig? 
Du hast es Probiert. Soweit so gut. Kommt eine Fehlermeldung?

*item: *Wennd ie Imageboxe 'image1', 'image2' etc. heissen, dann solltest du sich auch über diesen Namen aufrufen. Ich kenne Excel-VBA nur am Rande. Aber ist Image() eine Liste aller Imageboxen?


----------



## tombe (16. Februar 2012)

Ich glaube er meint da was anderes.


```
Dim variable As String

variable = "Image"  'oder was anderes

Controls(variable & zeilen).Picture = "M:\haus.gif"
```


----------



## Zvoni (16. Februar 2012)

Hier gehts fast um dasselbe Problem:

http://www.tutorials.de/visual-basic-6-0/327602-variabler-objektname.html


----------

