• Initiateur de la discussion Initiateur de la discussion mécano41
  • 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 !

mécano41

XLDnaute Accro
Bonjour,

Est-ce possible de faire ceci, et si oui quelle est la bonne syntaxe. J'ai tout essayé (sauf la bonne solution si elle existe 😡 ), sinon, je le ferai avec des if then else... :


Code:
ErrSaisie = False
Select Case TextBox1.Value
    Case Is = ""
        Reponse = MsgBox("Veuillez entrer une valeur", vbOKOnly, "Erreur de saisie")
        ErrSaisie = True
    Case Is = [COLOR="Red"]non numérique????[/COLOR]
        Reponse = MsgBox("Veuillez entrer une valeur numérique", vbOKOnly, "Erreur de saisie")
        ErrSaisie = True
     Case Is < 1
        Reponse = MsgBox("Veuillez entrer une valeur positive", vbOKOnly, "Erreur de saisie")
        ErrSaisie = True
End Select
If ErrSaisie = True Then
    TextBox1.SetFocus
Else

Merci d'avance

Cordialement
 
Re : syntaxe select case

Bonjour,
essaie avec ceci :

Code:
On Error Resume Next
ErrSaisie = False
Select Case TextBox1.Value
    Case Is = ""
        Reponse = MsgBox("Veuillez entrer une valeur", vbOKOnly, "Erreur de saisie")
        ErrSaisie = True
     Case Is < 1
        Reponse = MsgBox("Veuillez entrer une valeur positive", vbOKOnly, "Erreur de saisie")
        ErrSaisie = True
    Case Is = Not IsNumeric(CDbl(Me.TextBox1))
        Reponse = MsgBox("Veuillez entrer une valeur numérique", vbOKOnly, "Erreur de saisie")
        ErrSaisie = True
End Select
If ErrSaisie = True Then TextBox1.SetFocus
On Error GoTo 0
 
Re : syntaxe select case

bonjour,

Code:
ErrSaisie = False
Select Case [B]Val(TextBox1.Value)[/B]
    Case Is = 0
        Reponse = MsgBox("Veuillez entrer une valeur", vbOKOnly, "Erreur de saisie")
        ErrSaisie = True
     Case Is < 1 [COLOR="Orange"]???? 0,1 n'est pas positif????[/COLOR]
        Reponse = MsgBox("Veuillez entrer une valeur positive", vbOKOnly, "Erreur de saisie")
        ErrSaisie = True
     Case Else
        ...  traitement la valeur est bonne   
End Select
If ErrSaisie = True Then
    TextBox1.SetFocus
Else

Bonne journée
 
Re : syntaxe select case

Bonjour à tous

EDITION: ou plus radical
Code:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
    Case 48 To 57
'ok
    Case Else
   KeyAscii = 0
   MsgBox "Uniquement des valeurs numériques. Merci", _
vbCritical, "ERREUR DE SAISIE"
End Select
End Sub
______________________________________________
Une autre façon avec l'évenement change de la TextBox
(à adapter et compléter)
Code:
[B]Private Sub TextBox1_Change() [/B]
    OnlyNumbers 
[B]End Sub[/B]
Code:
[B]Private Sub OnlyNumbers()[/B]
'source:  ozgrid
    If TypeName(Me.ActiveControl) = "TextBox" Then
        With Me.ActiveControl
            If Not IsNumeric(.Value) And .Value <> vbNullString Then
                MsgBox "Seulement des valeurs numériques"
                .Value = vbNullString
            End If
        End With
    End If
    
[B]End Sub
[/B]
 
Dernière édition:
Re : syntaxe select case

Bonjour,

Merci pour cette réponse, cela fonctionne parfaitement, mais...pourrais-tu m'expliquer pourquoi.... car je n'ai pas compris 🙁

Le "Not IsNumeric(CDbl(TextBox1.Value))" produit quoi vis-à-vis du "Select Case"? (en le détournant par un Msgbox, j'ai vu que "IsNumeric(CDbl(TextBox1.Value))" ne produisait rien si la condition est satisfaite et produisait un "Vrai" si c'est l'un des deux autres cas mais ensuite...

D'autre part, quelle est la raison du "on error goto 0" car cela semble fonctionner avec ou sans.

Cordialement
 
Re : syntaxe select case

Bonjour,

Merci également à Hasco et à Staples1600 (désolé je n'avais pas réinitialisé et donc pas vu vos messages lorsque j'ai répondu à bhbh)

J'essaie tout cela ; c'est toujours intéressant d'avoir beaucoup de variantes!

Celles-ci je les ai comprises mais j'aimerais bien comprendre celle de bhbh...

Cordialement
 
- 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
274
Réponses
7
Affichages
367
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
452
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
588
Réponses
4
Affichages
521
Retour