IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

VBA - Limiter la saisie d'une seule virgule ou point dans une TextBox


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 2
    Points : 2
    Points
    2
    Par défaut VBA - Limiter la saisie d'une seule virgule ou point dans une TextBox
    Bonjour a tous,

    je suis en train de realiser un projet en utilisant le code VBA sous Excel.

    Voila mon projet, j'ai cree un USF, dans ce USF j'ai differentes TextBox que j'ai limite aux numeriques et avec deux chiffres apres la virgule (ou le point) maximum. J'ai aussi bloque la saisie pour ne pas depasser une borne numerique:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Private Sub TextBox6_change()
        Static anc As String
        If Val(Replace(TextBox6.Text, ",", ".")) > 1 Then TextBox6.Text = anc Else anc = TextBox6.Text
     
        If Right(TextBox6, 1) = "." Or Right(TextBox6, 1) = "," Then TextBox6.MaxLength = Len(TextBox6) + 2
    End Sub
     
    Private Sub TextBox6_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
        Dim allowedKeys As String
        allowedKeys = "0123456789,." & Chr(8)
        If InStr(allowedKeys, Chr(KeyAscii)) = 0 Then KeyAscii = 0
    End Sub

    Maintenant je me trouve face un probleme:

    J'aimerais que l'on puisse saisir qu'une seule virgule OU qu'un seul point dans ma TextBox6. Quel code je doit rajouter et ou le mettre ?

    Merci beaucoup de votre aide !!!

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, voir sur http://didier-gonard.developpez.com/...e-dans-texbox/ ?

    Sinon qqch comme ceci, à adapter à ton contexte car ici la virgule est remplacée automatiquement par un point

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Option Explicit
     
    Const entrees_decimales_permises = ".,0123456789" & vbCr & vbBack
    Const Point = "."
    Const Virgule = ","
     
    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Dim Pos As Long
        If KeyAscii = Asc(Virgule) Then
            If InStr(TextBox1, Point) = 0 Then
                KeyAscii = Asc(Point)
            Else
                KeyAscii = 0
            End If
        ElseIf InStr(entrees_decimales_permises, Chr(KeyAscii)) = 0 Then
            KeyAscii = 0
        ElseIf InStr(TextBox1, Point) > 0 And KeyAscii = Asc(Point) Then
            KeyAscii = 0
        ElseIf InStr(TextBox1, Point) > 0 Then
            Pos = InStr(TextBox1.Text, Point)
            If Len(TextBox1.Text) = Pos + 2 Then
                TextBox1.Text = Left$(TextBox1.Text, Len(TextBox1.Text) - 1)
            End If
        End If
    End Sub

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/12/2014, 11h42
  2. Réponses: 3
    Dernier message: 14/08/2012, 10h24
  3. Réponses: 3
    Dernier message: 07/08/2009, 11h59
  4. [MySQL] récupérer dans une boucle chaque information MySQL dans une variable différente
    Par gtenthorey dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/05/2007, 22h34
  5. Réponses: 2
    Dernier message: 20/06/2006, 08h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo