Microsoft 365 Garder le focus tant que vide

  • Initiateur de la discussion Initiateur de la discussion NONO14
  • 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 !

NONO14

XLDnaute Impliqué
Bonjour à toutes et à tous,
Voici mon problème : Dans un formulaire Vba, j'ai une TextBox qui a le focus à l'activation. Je souhaiterais savoir comment faire pour empêcher de quitter le focus tant que la TextBox est vide ? L'utilisateur ne peut rien rien tant que rien n'est saisie.
Merci par avance pour votre aide
 
Solution
Bonjour le forum
Bonjour Nono, bonjour Nicolas

Après de nombreux essais, je me suis décidé à rechercher sur le Net puis sur notre cher forum. Euréka, j'ai trouvé mon bonheur (qui fera le tien également, je l'espère) avec un fichier de notre ami Dudu2, que je salue au passage. Le seul bémol est qu'il délivre avant la fermeture (que ce soit via le BTN ou la croix du USF), un message d'alerte, ce qui n'est trop gênant en soi.
Réutilise tes noms de contrôle et n'oublies pas les 2 modules.
Bon ouikand à toutes & à tous.
Ma signature officielle.gif
Re, je pense que ça fonctionnerai mieux avec un code dans ce style, à adapter : "BeforeUpdate"

VB:
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    If Trim(Me.TextBox1.Value) = "" Then
        MsgBox "Veuillez saisir une valeur.", vbExclamation
        Cancel = True   ' empêche la sortie du champ
    End If
End Sub

Nicolas
 
Re, je pense que ça fonctionnerai mieux avec un code dans ce style, à adapter : "BeforeUpdate"

VB:
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    If Trim(Me.TextBox1.Value) = "" Then
        MsgBox "Veuillez saisir une valeur.", vbExclamation
        Cancel = True   ' empêche la sortie du champ
    End If
End Sub

Nicolas
Bonjour Nicolas,
J'ai essayé mais ça ne fonctionne pas
 
Bonne soirée le forum

Ton code à modifier :
VB:
Private Sub Frame19_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsNull(TxtIntitulé.Value) Or (TxtIntitulé.Text = "") Then
    MsgBox "Saisie obligatoire dans la textbox"
    Cancel = True
End If
End Sub
Bonne soirée à toutes & à tous
@+ Eric
 
Bonne soirée le forum

Ton code à modifier :
VB:
Private Sub Frame19_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsNull(TxtIntitulé.Value) Or (TxtIntitulé.Text = "") Then
    MsgBox "Saisie obligatoire dans la textbox"
    Cancel = True
End If
End Sub
Bonne soirée à toutes & à tous
@+ Eric
Bonne soirée le forum,
Ton code fonctionne à ceci près : Lorsque je clique sur un bouton pour fermer le formulaire, et bien je suis bloqué, le message s'affiche sans cesse.
Cependant, merci de t'être penché sur mon problème
 
Re,

C'est seulement lorsque tu cliques sur la croix de fermeture du USF qu'intervient ton MSG. Tu as déjà un bouton actif pour fermer ton formulaire, il te suffit de retirer la croix du bandeau du USF. !!! Pour fermer via ton bouton et afin de ne pas avoir ce MSG, il te faut remplir ton TxtIntitulé. Je regarderai demain, je vais dîner.
@+ Eric c
 
Re,

C'est seulement lorsque tu cliques sur la croix de fermeture du USF qu'intervient ton MSG. Tu as déjà un bouton actif pour fermer ton formulaire, il te suffit de retirer la croix du bandeau du USF.
@+ Eric c
Egalement lorsque je clique sur le bouton "Fermer le formulaire", c'est ce que j'ai remarqué chez moi.
Le message s'affiche aussi lorsque je clique sur la croix mais ce problème va être réglé par le fait que je vais rendre cette croix inactive.
Si l'utilisateur veut fermer le formulaire en cours de saisie, le message s'affiche. Bien entendu, il ne peut rien saisir ailleurs tant qu'il n'a pas saisie quelque chose dans TxtIntitulé, ça, ça fonctionne bien. C'est juste ce petit soucis de fermeture avec mon bouton
 
Dernière édition:
Re,
Ton code pour le bouton de fermeture (il faudra désactiver la croix du USF)
VB:
Private Sub BtnFermerFormulaire_Click()
If TxtIntitulé.Text <> "" Then
   Unload Me
End If
End Sub
@+ Eric
Désolé mais ça ne fonctionne pas. La croix est bien bloquée. Mais si l'utilisateur veut sortir du formulaire avant même d'avoir saisie du texte dans TxtIntitulé, il ne peut, il est obligé de taper quelque chose s'il veut sortir
 
Bonjour le forum
Bonjour Nono, bonjour Nicolas

Après de nombreux essais, je me suis décidé à rechercher sur le Net puis sur notre cher forum. Euréka, j'ai trouvé mon bonheur (qui fera le tien également, je l'espère) avec un fichier de notre ami Dudu2, que je salue au passage. Le seul bémol est qu'il délivre avant la fermeture (que ce soit via le BTN ou la croix du USF), un message d'alerte, ce qui n'est trop gênant en soi.
Réutilise tes noms de contrôle et n'oublies pas les 2 modules.
Bon ouikand à toutes & à tous.
Ma signature officielle.gif
 

Pièces jointes

Bonjour le forum
Bonjour Nono, bonjour Nicolas

Après de nombreux essais, je me suis décidé à rechercher sur le Net puis sur notre cher forum. Euréka, j'ai trouvé mon bonheur (qui fera le tien également, je l'espère) avec un fichier de notre ami Dudu2, que je salue au passage. Le seul bémol est qu'il délivre avant la fermeture (que ce soit via le BTN ou la croix du USF), un message d'alerte, ce qui n'est trop gênant en soi.
Réutilise tes noms de contrôle et n'oublies pas les 2 modules.
Bon ouikand à toutes & à tous.
Regarde la pièce jointe 1227000
Bonjour Eric, bonjour le forum,
Merci pour l'exemple et merci à Dudu2. J'avais ce modèle dont je mettais inspiré, mais c'est ce message délivré à la fermeture qui me gênait un peu car il peut être déroutant pour l'utilisateur. Je cherche un parade à ça et si je la trouve je la partagerais avec vous.
Bon weekend à tous
 
- 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
10
Affichages
544
  • Question Question
Microsoft 365 Contrôle sur date
Réponses
8
Affichages
357
Réponses
12
Affichages
276
Retour