XL 2016 restriction dans une texbox dans un userform

nicroq

XLDnaute Occasionnel
Bonjour a tous,

voila je bloque sur un code qui est sans doute tout bête, je souhaiterais dans une textbox d'un userform interdire les valeurs non numeriques et interdire les valeurs <12.

cela est il possible avec l'option keypress? ou avez d'autres solutions?

En vous remerciant d'avance

cordialement
 

jmfmarques

XLDnaute Accro
Bonjour
Ceci (bâclé et à main levée) fera peut-être l'affaire :
VB:
private sub textbox1_change()
  static ANC as string, non as boolean
  If non then non =false: exit sub
  If val(textbox1.value) > 12 or (textbox1.value <> "" and textbox1.value <> "-" and not isnumeric(textbox1.value)) Then
    non = true: textbox1.value = ANC: exit sub
  end If
  ANC = textbox1.value
end sub
 

job75

XLDnaute Barbatruc
Bonjour nicroq, jmfmarques,

Placez dans le code de l'UserForm :
VB:
Private Sub TextBox1_AfterUpdate()
TextBox1 = Val(Replace(TextBox1, ",", "."))
If CDbl(TextBox1) < 12 Then TextBox1 = "": TextBox1.SetFocus
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
TextBox1_AfterUpdate
Cancel = TextBox1 = ""
End Sub
A+
 

nicroq

XLDnaute Occasionnel
super merci pour vos reponses
serait il possible au lieu de fermer le userform si la valeur est inférieure à 12, de mettre une msgbox si la valeur est inférieure à 12 et de demander à corriger cette valeur?
merci
 

Discussions similaires