Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Gestion d'un control image dans un formulaire

4 réponses
Avatar
JLuc69
Salut le groupe,

Toujours sur mon formulaire de compteur, j'ai quelques questions

1/ supprimer l'image dans un control image :
Voilà, par vba, je mets une image dans un control image via
ctrl.picture = loadpicture(monimage)
Comment faire pour supprimer l'image lorsque je veux réinitialiser le
formulaire ? (remise_a_zero_Click())

2/ Sur mon formulaire, je ne voudrais laisser qu'un seul Textbox
pouvant recevoir le focus.
Malheureusement, s'il ne perd pas le focus, ça n'execute pas
l'evenement Enter. Si j'en rajoute un (caché par un autre control) il
faut que je valide une deuxième fois pour remettre le focus sur le
Textbox de départ. Y a t'il une solution pour que, lorsque je valide
mon Textbox, le focus revienne sur celui ci ?

Merci d'avance pour l'éclairage que vous pourrez m'apporter
JLuc

4 réponses

Avatar
MichD
Bonjour,

'Pour charger une image sur un bouton de commande :
Me.CommandButton1.Picture = LoadPicture("C:CheminMonImage.jpg")

'Pour effacer l'image du bouton de commande:
Me.CommandButton1.Picture = LoadPicture()


Pour répondre à la question II, habituellement, la ligne de
code suivante est suffisante pour donner le focus au textbox1
Me.TextBox1.SetFocus

Si cela ne fonctionne pas, il faudrait que tu publies le bout de procédure
à partir duquel tu voudrais donner le focus au TextBox1.
Avatar
JLuc69
MichD a pensé très fort :
Bonjour,

'Pour charger une image sur un bouton de commande :
Me.CommandButton1.Picture = LoadPicture("C:CheminMonImage.jpg")

'Pour effacer l'image du bouton de commande:
Me.CommandButton1.Picture = LoadPicture()


Pour répondre à la question II, habituellement, la ligne de
code suivante est suffisante pour donner le focus au textbox1
Me.TextBox1.SetFocus

Si cela ne fonctionne pas, il faudrait que tu publies le bout de procédure
à partir duquel tu voudrais donner le focus au TextBox1.



Je ne peux pas te publier mon fichier complet, il commence a y avoir
pas mal de code et c'est un peu le bordel pour s'y retrouver :oÞ
Par contre, tu crées un userform où tu mets deux textbox et un label et
ce code : http://pastebin.com/VxpayWhj
Ce que je souhaite obtenir, c'est que après avoir validé le textbox1,
le focus revienne sur le textbox1, comme s'il n'y avait pas de
textbox2.
Le problème, si j'enlève le textbox2, la validation par entrer ne
marche plus :/
Merci déjà pour la première piste concernant l'image
Avatar
MichD
Si tu utilises l'événement "UpDate" d'un textbox, l'événement
est justement de sortir du textbox, tu ne peux pas annuler
l'exécution de cet événement à mis chemin sous prétexte que
l'événement devrait s'annuler dès que le texte du textbox a été
mis à jour.

Tu peux remplacer cet événement par la combinaison de ces 2
procédures. Lorsque tu es dans le TextBox, dès que tu cliques sur
la touche "Enter", la validation prend place et tu demeures toujours
dans le Textbox1. Si tu appuies sur la touche "TAB" tu passes
directement dans le Textbox2.

Est-ce que tu désires?


'Déclaration de cette variable dans le haut du module Userform.
Dim Ok As Boolean
'-------------------------------------------
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Cancel = Ok
End Sub
'-------------------------------------------
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal
Shift As Integer)

Select Case KeyCode
Case 13 'Touche Enter
Label1.Caption = TextBox1.Text
Me.TextBox1.Value = ""
Ok = True
Case 9 'touche TAB
Ok = False
'Tu peux ajouter des lignes de code...
Me.TextBox2.SetFocus
End Select
End Sub
'-------------------------------------------



"JLuc69" a écrit dans le message de groupe de discussion :
55105dd1$0$3066$

MichD a pensé très fort :
Bonjour,

'Pour charger une image sur un bouton de commande :
Me.CommandButton1.Picture = LoadPicture("C:CheminMonImage.jpg")

'Pour effacer l'image du bouton de commande:
Me.CommandButton1.Picture = LoadPicture()


Pour répondre à la question II, habituellement, la ligne de
code suivante est suffisante pour donner le focus au textbox1
Me.TextBox1.SetFocus

Si cela ne fonctionne pas, il faudrait que tu publies le bout de procédure
à partir duquel tu voudrais donner le focus au TextBox1.



Je ne peux pas te publier mon fichier complet, il commence a y avoir
pas mal de code et c'est un peu le bordel pour s'y retrouver :oÞ
Par contre, tu crées un userform où tu mets deux textbox et un label et
ce code : http://pastebin.com/VxpayWhj
Ce que je souhaite obtenir, c'est que après avoir validé le textbox1,
le focus revienne sur le textbox1, comme s'il n'y avait pas de
textbox2.
Le problème, si j'enlève le textbox2, la validation par entrer ne
marche plus :/
Merci déjà pour la première piste concernant l'image
Avatar
JLuc69
Super MichD, exactement ce que je voulais :D
T'es un Dieu ;-)
Dans son message précédent, MichD a écrit :
Si tu utilises l'événement "UpDate" d'un textbox, l'événement
est justement de sortir du textbox, tu ne peux pas annuler
l'exécution de cet événement à mis chemin sous prétexte que
l'événement devrait s'annuler dès que le texte du textbox a été
mis à jour.

Tu peux remplacer cet événement par la combinaison de ces 2
procédures. Lorsque tu es dans le TextBox, dès que tu cliques sur
la touche "Enter", la validation prend place et tu demeures toujours
dans le Textbox1. Si tu appuies sur la touche "TAB" tu passes
directement dans le Textbox2.

Est-ce que tu désires?


'Déclaration de cette variable dans le haut du module Userform.
Dim Ok As Boolean
'-------------------------------------------
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Cancel = Ok
End Sub
'-------------------------------------------
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal
Shift As Integer)

Select Case KeyCode
Case 13 'Touche Enter
Label1.Caption = TextBox1.Text
Me.TextBox1.Value = ""
Ok = True
Case 9 'touche TAB
Ok = False
'Tu peux ajouter des lignes de code...
Me.TextBox2.SetFocus
End Select
End Sub
'-------------------------------------------