Insérer plusieurs images dans un UserForm

Fermé
Bzik59 Messages postés 32 Date d'inscription vendredi 31 juillet 2015 Statut Membre Dernière intervention 16 septembre 2018 - Modifié par jordane45 le 31/07/2015 à 18:10
Bzik59 Messages postés 32 Date d'inscription vendredi 31 juillet 2015 Statut Membre Dernière intervention 16 septembre 2018 - 1 août 2015 à 12:40
Bonjour
Je veux insérer 4 images dépendants de 4 TextBox dans un UserForm avec le code suivant, qui me donne malheureusement soit 4 images d'un seul coup dans les quatre Image.Picture, soit ne donne aucune image.
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  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



EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Merci d'y penser dans tes prochains messages.
.
.


aucun avatar Bzik
Nouveau venu
Nouveau venu

Messages: 1
Inscription: Hier, 20:19
Version Excel: 2010
A voir également:

6 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
1 août 2015 à 12:09
C'est reparti avec le Jordane qui pourtant m'avait fichu la paix après ses edit à la c#¤^ il y a quelque temps

EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).


DE QUOI TU TE MELES ?


1/ il existe une balise code qui reste disponible pour un choix de présentation, donc, je choisis ce qui me convient

2/ Dans beaucoup de zinzin "coloration syntaxique" la longueur des lignes dépasse le cadre il faut alors descendre et manoeuvrer pour lire ce qui est écrit en fin de ligne
il faut alors remonter jusqu'à la ligne maid là, on ne voit plus le début de la ligne !!!! très pratique

3/ Bien qu'il n'y ait pas de propriété intellectuelle du code indiquée, il est d'usage d'indiquer la source, c.ad apparament Caféine sur DVP (code d'ailleurs intéressant avec les regexp)

Pourtant, je croyais que tu avais compris mon aversion pour ce gadget suite à nos discussions houleuses

alors FICHE MOI LA PAIX UNE BONNE FOIS POUR TOUTES

A l'attention de Bzik:

Bonjour,

Suite à l'intervention intempestive de ce Monsieur Jordane, j'abandonne le suivi de notre discussion, dommage, mais j'en ras le bol de cet individu
1
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par jordane45 le 31/07/2015 à 18:08
Bonjour

1/
Image3.Picture = LoadPicture("C:\Users\bzik\Desktop\Rhita\" & TextBox2 & ".jpg")
Image4.Picture = LoadPicture("C:\Users\bzik\Desktop\Rhita\" & TextBox2 & ".jpg")
donc image 2,3, 4 sont les m^mes par la valeur de textbox 2 ?

2/ donne rien
si tu as une erreur dans un textbox, tous les controle image auront défaut jpg
il faut que l'erreur soit personnifiée sur chaque ligne de remplissage
par exemple
For I = 1 To 4
    Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 1)
    On Error Resume Next
    controle image concerné  par textbox conerné
    If Err.Number > 0 Then
        defaut.jpg dans controle image concerné
    End If
    On Error GoTo 0
Next I


EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Merci d'y penser dans tes prochains messages.
.

Michel
0
Bzik59 Messages postés 32 Date d'inscription vendredi 31 juillet 2015 Statut Membre Dernière intervention 16 septembre 2018
1 août 2015 à 10:50
Bonjour Michel
Merci pour votre Réponse ci-vite.
J'ai changé le code par celui-la:

Private 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

For I = 1 To 4
On Error GoTo Autre

Me.Controls("Image" & I).Picture =LoadPicture("C:\Users\bzik\Desktop\Rhita\" & Me.Controls("TextBox" & I) & ".jpg")
Next I
Exit Sub

Autre:
Me.Controls("Image" & I).Picture = LoadPicture("C:\Users\bzik\Desktop\Rhita\Defaut.jpg")
End Sub

En changeant les valeurs TextBox, le problème c'est que Lorsque la ligne:

Me.Controls("Image" & I).Picture = LoadPicture("C:\Users\bzik\Desktop\Rhita\Defaut.jpg")

s'exécute pour une image.Picture donnée, La ligne:

Me.Controls("Image" & I).Picture = LoadPicture("C:\Users\bzik\Desktop\Rhita\" & Me.Controls("TextBox" & I) & ".jpg")

ne s'exécute plus dans la suivante. elle garde l'image antérieur jusqu'à ce que l'image correspondante à cette Image.Picture se trouve dans le dossier C:\.... .
Cordialement
0
Bzik59 Messages postés 32 Date d'inscription vendredi 31 juillet 2015 Statut Membre Dernière intervention 16 septembre 2018
1 août 2015 à 11:56
Je veux dire que 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.
Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bzik59 Messages postés 32 Date d'inscription vendredi 31 juillet 2015 Statut Membre Dernière intervention 16 septembre 2018
1 août 2015 à 11:59
comment faire pour effacer les images antérieures des Image.Picture suivants?
Merci
0
Bzik59 Messages postés 32 Date d'inscription vendredi 31 juillet 2015 Statut Membre Dernière intervention 16 septembre 2018
1 août 2015 à 12:40
J'ai refait le code avec votre suggestion c'est beaucoup mieux sans afficher l'mage Défaut dans les Image.Picture, ça reste vides. mais le problème est toujours le même.

For I = 1 To 4
Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 1)
Next I

On Error Resume Next
For I = 1 To 4
Me.Controls("Image" & I).Picture = LoadPicture("C:\Users\bzik\Desktop\Rhita\" & Me.Controls("TextBox" & I) & ".jpg")
Next I
Exit Sub
If Err.Number > 0 Then
End If
On Error GoTo 0
0