• Initiateur de la discussion Initiateur de la discussion Bruce68
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Bruce68

XLDnaute Impliqué
Bonjour à tous
N'étant pas un champion de VBA je cherche à comprendre pourqoi le SetFocus ne fonctionne pas dans la 1° macro alors que cela fonctionne dans la 2°( en changeant la 1° ligne, en remplaçant AfterUpdate par exit(ByVal Cancel As MSForms.ReturnBoolean).
Je vous remercie pour vos explications

Private Sub Reglement_AfterUpdate()
If Reglement.Value > Montant.Value Then
MsgBox " ERREUR: Le Reglement est Supérieur à la Facture!", vbOKOnly + vbCritical, "Retapez le Montant"
Cancel = True
Reglement.SetFocus
End If
If Reglement.Value < Montant.Value Then
MsgBox (" ATTENTION Le Reglement est inférieur à la Facture!")
End If
End Sub


Private Sub Reglement_exit(ByVal Cancel As MSForms.ReturnBoolean)
If Reglement.Value > Montant.Value Then
MsgBox " ERREUR: Le Reglement est Supérieur à la Facture!", vbOKOnly + vbCritical, "Retapez le Montant"
Cancel = True
Reglement.SetFocus
End If
If Reglement.Value < Montant.Value Then
MsgBox (" ATTENTION Le Reglement est inférieur à la Facture!")
End If
End Sub
 
Re : SetFocus

Bonjour Bruce

Dans la deuxieme il ne sert strictement à rien, ce n'est pas setfocus qui renvoi à la saisie des la textbox mais le Cancel = True

Avec Cancel = True tu lui dis d'abandonner l'exit de la textbox pour refaire la saisie

Dans la 1ere macro, n'ayant pas cancel en passage de parametres, cancel = true ne sert à rien

After_update, je ne sais pas exactement à quoi il sert, personnellement je n'utilise que Exit ou change
 
Re : SetFocus

Bonsoir Bruce, Wilfried

ci dessous, description de l'aide vba :

État de réceptivité aux clics de souris et aux saisies au clavier. Dans l'environnement Microsoft Windows, un seul contrôle, une seule fenêtre ou une seule feuille peut recevoir, à un moment donné, des clics de souris ou des données entrées au clavier. La légende ou la barre de titre de l'objet qui "a le focus" est généralement en surbrillance. Le focus peut être défini par l'utilisateur ou par l'application.

F1 sur le mot setfocus, te donnes des infos.

bonne soirée
@+
 
Re : SetFocus

re:, pierrot 🙂

Set focus sert en programmation

Sur excel, tu n'est pas obliger de passer dans tous le parametres pour appuyer sur un bouton de validation ou de lancement de traitement

Quand tu fais ta macro de validation, tu controles toutes les occurences saisie, si une est manquante ou fausse, tu l'annonces (msgbox) et ty fais un setfocus de cette instence et un exit sub pour arreter ta macro

Ceci est une utilisation parmis tant d'autres du setfocus

autre exemle, une macro à lancer suite à un Exit d'une textbox, meme remplie, la textbox doit etre un passage obligé pour à sa sortie lancer la macro pre-citée --> un setfocus est tres interresant

maintenant, apres un controle de saisi sur un textbox, j'utilise _Exit, et cancel = true, pour un retour à la saisie
un setfocus dans ce cas à mon avis ne fonctionnera pas car le focus est deja sur cet instence et qu'il changera automatiquement sur l'instance suivante à la fin du traitement.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
273
Retour