Insérer plusieurs images dans un UserForm
Bonjour,
je veux insérer 4 images dans un UserForm avec le code suivant, qui me donne malheureusement soit 4 images d'un seul coup dans les quatre Image.Picture, soit Rien.
Je veux que Chaque image.Picture soit en relation avec un TextBox. Par exemple: Si TextBox1.Value >0; l'image1 soit affichée dans Image1.Picture, Sinon pas d'image. même chose pour TextBox2 et Image2.Picture. etc
Je vous demande de m'aider, Merci à vous
Private [/contents/446-fichier-sub Sub] ComboBox1_Change()
Dim Ligne As Long
Dim I As Integer
Ligne = Me.ComboBox1.ListIndex + 2
For I = 1 To 4
Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 1)
Next I
On Error GoTo Autre
Image1.Picture = LoadPicture]("C:\Users\bzik\Desktop\Rhita\" & TextBox1 & ".jpg")
Image2.Picture = LoadPicture("C:\Users\bzik\Desktop\Rhita\" & TextBox2 & ".jpg")
Image3.Picture = LoadPicture("C:\Users\bzik\Desktop\Rhita\" & TextBox2 & ".jpg")
Image4.Picture = LoadPicture("C:\Users\bzik\Desktop\Rhita\" & TextBox2 & ".jpg")
Exit Sub
Autre:
Image1.Picture = LoadPicture("C:\Users\bzik\Desktop\Rhita\Defaut.jpg")
Image2.Picture = LoadPicture("C:\Users\bzik\Desktop\Rhita\Defaut.jpg")
Image3.Picture = LoadPicture("C:\Users\bzik\Desktop\Rhita\Defaut.jpg")
Image4.Picture = LoadPicture("C:\Users\bzik\Desktop\Rhita\Defaut.jpg")
End Sub
<config>Windows 8 / Chrome 44.0.2403.125</config>
Bonjour et bienvenu(e)
A tester
Private Sub ComboBox1_Change()
Dim Ligne As Long
Dim I As Integer
Dim Chemin As String
Chemin = "C:\Users\bzik\Desktop\Rhita\"
Ligne = Me.ComboBox1.ListIndex + 2
For I = 1 To 4
With Me.Controls("TextBox" & I)
.Value = Ws.Cells(Ligne, I + 1)
If .Value <> "" Then
If Dir(Chemin & .Text & ".jpg") <> "" Then
Me.Controls("Image" & I).Picture = LoadPicture(Chemin & .Value & ".jpg")
Else
Me.Controls("Image" & I).Picture = LoadPicture(Chemin & "Defaut.jpg")
End If
End If
End With
Next I
End Sub
Bonjour Banzai64
Merci pour votre aide. J'ai utilisé le code que vous m'avez envoyé, c'est presque parfait. un petit problème persiste:
Pour un ComboBox donné, si les 3 premiers TextBox correspondants ne sont pas vides et si j'ai les 3 images correspondantes dans mon dossier "C:\....." alors les 3 images sont bien affichées.
Mais pour le suivant ComboBox qui ne donne que 2 TextBox non vides, alors les 2 images sont affichées dans les 2 premiers Image.Picture, tandis-que le 3ème garde la même image antérieur, jusqu'à ce que le 3ème TextBox Soit non vide.
comment faire pour effacer les images précédentes des Image.Picture.
Merci
Bonjour
Sans fichier test et en espérant que ma mémoire est un tant soit peu efficace
Modifie la macro
Private Sub ComboBox1_Change()
Dim Ligne As Long
Dim I As Integer
Dim Chemin As String
Chemin = "C:\Users\bzik\Desktop\Rhita\"
Ligne = Me.ComboBox1.ListIndex + 2
For I = 1 To 4
With Me.Controls("TextBox" & I)
.Value = Ws.Cells(Ligne, I + 1)
Me.Controls("Image" & I).Picture = LoadPicture("") ' On efface l'image précédente
If .Value <> "" Then
If Dir(Chemin & .Text & ".jpg") <> "" Then
Me.Controls("Image" & I).Picture = LoadPicture(Chemin & .Value & ".jpg")
Else
Me.Controls("Image" & I).Picture = LoadPicture(Chemin & "Defaut.jpg")
End If
End If
End With
Next I
End Sub
Merci mon problème est résolu.
je suis très content grâce à vous.
cordialement.