Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1520 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Textbox, filtre pour un nombre

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Textbox, filtre pour un nombre

n°1300427
Asmfox_swe​den
Posté le 07-02-2006 à 12:50:53  profilanswer
 

Bonjour,
 
Je cherche désespérement à faire une conversion et un filtre.
Pour éviter de faire des phrases compliqué pour expliquer ce que je veux faire exactement, voila l'algorithme :
 
Private Sub txt_age_Change()
      'convertir le texte de txt_age en nombre
      'si 10<valeur<99 alors
             'OK
      'sinon
             'message "Ceci n'est pas un nombre"
      'Fin si
End Sub
 
J'espère que vous avez bien compris ce que je veux faire. C'est sans doute très simple mais je ne trouve pas tout à fait comment faire. Je suis un débutant.
Merci

mood
Publicité
Posté le 07-02-2006 à 12:50:53  profilanswer
 

n°1300455
knakes
Posté le 07-02-2006 à 13:49:04  profilanswer
 


If 10 < CDec(txt_age) Or 99 > CDec(txt_age) Then
'OK
Else
MSgbox "Ceci n'est pas un nombre"
EndIf
 
----
 
LE soucisn c'est que si ce n'est pas un nombre, c'est VB qui génère une    
erreur. Tu peux contourner en :
 
Private Sub txt_age_Change()  
On error Goto Error
txt_age.Text = CDec(txt_age)
'Si tout c'est bien passé
Exit Sub
'Sinon, s'il y a une erreur
error:
Msgbox "Ce n'est pas un nombre"
End Sub
 
Tu peux même personnaliser l'erreur
error:
If Err.Number = xx Then
Msgbox "Ce n'est pas un nombre !"
Exit Sub
EndIf
 
Msgbox "Erreur système ! "
 
End Sub


---------------
now : do nothing
n°1300496
kiki29
Posté le 07-02-2006 à 14:50:14  profilanswer
 

Définir des constantes du type
 
Const SaisieDecimale As String = ".,0123456789" & vbCr & vbBack
Const SaisieEntiere As String = "0123456789" & vbCr & vbBack
Const Point as string ="."  
Const Virgule as string =","  
 
Puis utiliser xxx_KeyPress ici pour une saise décimale avec
substitution . par , et un seul séparateur décimal de permis
ici en systeme français la virgule
 
Private Sub xxxx_KeyPress(KeyAscii As Integer)
    If KeyAscii = Asc(Point) Then
        If InStr(xxxx, Virgule) = 0 Then
            KeyAscii = Asc(Virgule)
        Else
            KeyAscii = 0
        End If
    ElseIf InStr(SaisieDecimale , Chr(KeyAscii)) = 0 Then
        KeyAscii = 0
    ElseIf InStr(xxxx, Virgule) > 0 And KeyAscii = Asc(Virgule) Then
        KeyAscii = 0
    End If
     
    If KeyAscii = 13 Then SendKeys "{TAB}": KeyAscii = 0
End Sub
 
pour une saisie d'entiers
 
Private Sub xxxx_KeyPress(KeyAscii As Integer)
    If InStr(SaisieEntiere , Chr(KeyAscii)) = 0 Then KeyAscii = 0
    If KeyAscii = 13 Then SendKeys "{TAB}": KeyAscii = 0
End Sub


Message édité par kiki29 le 07-02-2006 à 15:05:44
n°1300522
Asmfox_swe​den
Posté le 07-02-2006 à 15:06:29  profilanswer
 

Je vais essayer tout ça.
Merci.
Oui mon gros problème si je passais par les erreurs, je ne savais pas comment les gérer.
Encore merci.

n°1300568
tegu
Posté le 07-02-2006 à 15:40:57  profilanswer
 

Et la fonction IsNumeric() elle vous tente pas ?

n°1300594
kiki29
Posté le 07-02-2006 à 15:57:16  profilanswer
 

le but est de containdre la saisie utilisateur dans le champ de valeurs
que l'on s'est fixé . IsNumeric ne présente strictement aucun intéret dans ce cas

n°1300716
Asmfox_swe​den
Posté le 07-02-2006 à 19:11:04  profilanswer
 

If IsNumeric(txt_age.Text) = True Then
    sujet.age = CDec(txt_age)
Else
    MsgBox "Ceci n'est pas un nombre"
End If
 
Ca marche très bien, et c'est plus simple que la gestion d'erreur. Encore merci

n°1300727
kiki29
Posté le 07-02-2006 à 19:38:03  profilanswer
 

Un lien qui présente de nombreux exemples succincts permettant un bon démarrage en VB6 et Net
 
http://www.vb-helper.com/index_categories.html


Message édité par kiki29 le 07-02-2006 à 19:38:29
n°1300789
knakes
Posté le 07-02-2006 à 22:03:43  profilanswer
 

Asmfox_sweden a raison. // dslé j'avais pas vu si simple ...


Message édité par knakes le 07-02-2006 à 22:04:00

---------------
now : do nothing

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Textbox, filtre pour un nombre

 

Sujets relatifs
[VBA2003]Centrer horizontalement et verticalement un textbox[SQL] UPDATE - nombre de lignes updatees
[C#]Position scrollbar sur textBoxtextbox multiligne
variable dans une textboxCompter un nombre de jours en timestamp
[C#]Nombre dans une stringFiltre automatique, tri et VBA
nombre de lignes d'un textbox en VB6 
Plus de sujets relatifs à : Textbox, filtre pour un nombre


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR