Gestion d'un control image dans un formulaire

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #26345549
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.
JLuc69
Le #26345618
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
MichD
Le #26345643
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
JLuc69
Le #26345645
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
'-------------------------------------------
Publicité
Poster une réponse
Anonyme