Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Saisie obligatoire

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 !

Scoobidoo

XLDnaute Occasionnel
Bonjour à tous, le Forum

Voilà, j’ai un combo sur lequel je souhaite mettre un contrôle afin que l'on ne puisse pas saisir :
- que des chiffres
- de « blanc » en premier caractère
- pas de chaine de « blancs ».

Cela semble fonctionner pour le premier contrôle mais je n'y parviens pas pour les deux autres. Le ridicule ne tuant pas, et même si j’ai un peu honte, je vous mets ce que j’ai fait pour tenter d’y arriver seul

Code:
If IsNumeric(ComboBox3.Value) Or ComboBox3.Value = " " Then
retMsg = MsgBox("Le nom indiqué n'est pas valide. Veuillez le corriger.", vbOKOnly)
Exit Sub
End If
Code:

Je vous remercie par avance de l’aide que vous aurez une nouvelle fois la gentillesse de m’apporter. Au plaiosir de vous lire.

Scoobidoo
 
Re : Saisie obligatoire

Bonjour scoobidoo, Jean-Marcel

comprend pas trop, si c'est un combo, pourquoi ne pas mettre la propriété "MatchRequired " à true, ceci aura pour effet de n'autoriser que les valeurs présentes dans la liste déroulante...

Code:
ComboBox1.MatchRequired = True

PS : J.M., avec ton code, on ne pourra jamais saisir de l'alphanumérique, "AAA123" par exemple
bon après midi
@+
 
Re : Saisie obligatoire

Re

oui, m'en suis douté J.M. 🙂, pour un textbox placé sur un usf, je contrôlerais peut être ainsi :

Code:
Option Explicit
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsNumeric(TextBox1) Or TextBox1 Like " *" Or InStr(TextBox1, "  ") > 0 Then
    MsgBox "saisie erronée..."
    Cancel = True
End If
End Sub

@+
 
Re : Saisie obligatoire

Bonjour Jean Marcel, Pierrot 93,

Tout d'abord merci de vous pencher sur mon cas. Alors Jean Marcel, j'ai adapté ta proposition mais effectivement, cela rendait impossible toute sélection d'un nom (alpha ou alphanumérique) de ma liste. Pierrot, en ce qui concerne ta remarque sur la propriété "matchrequired" je crois que je ne peux pas l'utiliser car je dois pouvoir soit sélectionner un nom déjà présent dans ma liste soit en saisir un nouveau qui après validation finale, vient d'ajouter à cette liste. Par contre, je viens d'adapter ta proposition pour un textbox à mon cas et visiblement cela semble fontionner. Peux tu me dire si c'est possible ou bien s'il ne s'agit que d'un hasard et que le fonctionnement est "non garanti" dans mon cas ? Afin de peut être t'aider à me répondre, je te mets ce que donne mon adaptation :
Code:
    If IsNumeric(ComboBox3) Or ComboBox3 Like " *" Or InStr(ComboBox3, "  ") > 0 Then
        retMsg = MsgBox("Le nom indiqué n'est pas valide. Veuillez le corriger.", vbOKOnly)
        Exit Sub
    End If
Dans l'attente de te lire, encore merci à vous.

Scoobidoo
 
Re : Saisie obligatoire

Re,

oui, à priori, tu peux tout à fait adapter ce test à l'événement "exit" de ta combo, cela devrait fonctionner à l'identique... mais attention, à "exit sub", perso je préfère annuler la sortie du contrôle si la saisie n'est pas valide, maintenant ce n'est qu'un point de vue... Test et dis nous.

@+
 
Re : Saisie obligatoire

Re,

oui si nous parlons d'un contrôle placé sur un USF :

Code:
Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

pour un controle placé sur une feuille de calcul, utilisé l'événement "LostFocus", attention dans ce cas l'instruction "cancel = true provoquera une erreur...

Code:
Private Sub ComboBox1_LostFocus()

@+
 
Re : Saisie obligatoire

Re

J.M. "lostfocus", Cet événement survient lorsqu'un contrôle ActiveX perd le focus d'entrée. cf aide vba, A noter que l'événement "afterupdate" n'est pas disponible pour un combo placé sur une feuille de calcul...

@+
 
Re : Saisie obligatoire

Re Pierrot, le Forum

Et bien malgrè mes différentes tentatives je n'ai pas réussi à "insèrer" l'évènement Exit dans le code déjà écrit de mon projet. Mais cela fonctionne visiblement bien avec la méthode retenue plus haut et je vais m'en contenter. A chaque jour suffit sa peine et là c'est encore un peu trop haut pour moi mais qui sait si dans quelques temps je n'aurai pas le niveau qui me permettra de le faire. Je n'en suis encore qu'aux bases et je ne veux rien brusquer. En tout cas, merci à tous car c'est principalement par votre aide que j'arrive à progresser. Bonne journée et à bientôt c'est sûr.

Scoobidoo
 
Re : Saisie obligatoire

Re,

Si si Pierrot j'ai bien vu la deuxième option que tu me proposais dans ton post mais mon combo est bien situé dans un USF. Néanmoins, il y a déjà beaucoup de ligne de code écrites (à mon goût) et insèrer ce petit bout avec l'évènement Exit remet en cause une bonne partie de ce qui est écrit et je n'ai pas les moyens d'y apporter les modifications nécessaires. Mais cela marche très bien pour un petit pays comme le nôtre et je suis content comme ça pour l'instant. Encore merci. A bientôt.

Scoobidoo
 
- 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

D
Réponses
4
Affichages
1 K
B
Réponses
6
Affichages
1 K
K
  • Résolu(e)
Réponses
6
Affichages
1 K
kondabalo
K
F
Réponses
5
Affichages
2 K
Fariri
F
K
Réponses
5
Affichages
2 K
K
L
Réponses
7
Affichages
2 K
lenul78570
L
G
Réponses
16
Affichages
2 K
G
G
Réponses
5
Affichages
1 K
G
Y
Réponses
0
Affichages
1 K
yOUnII
Y
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…