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.

Rechercher des sujets similaires à "inserer images userform"