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 :

nombres dans textbox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut nombres dans textbox
    Bonsoir à tous
    Comme je cherche encore beaucoup les solutions à mes problèmes et qu'on m'aide à chaque fois, j'ai envie de vous communiquer une macro que je viens de trouver afin d'eviter les erreurs dans la saisie de décimales dans les textbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub nomdutextbox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If Chr(KeyAscii) = "." Then KeyAscii = Asc(",")
     
    End Sub
    j'espere que ça aidera quelqu'un mais si il y a mieux, n'hesitez pas à me le dire

    à+
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  2. #2
    Expert confirmé
    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
    Par défaut
    Remplacement d'un . par une ,
    Impossibilité de saisir un 2eme séparateur décimal ainsi qu'autre chose que des chiffres

    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
    26
    27
    28
    29
     
    Option Explicit
     
    Const entrees_decimales_permises = ".,0123456789" & vbCr & vbBack
    Const entrees_entieres_permises = "0123456789" & vbCr & vbBack
    Const Point = "."
    Const Virgule = ","
     
    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
        If KeyAscii = Asc(Point) Then
            If InStr(TextBox1, Virgule) = 0 Then
                KeyAscii = Asc(Virgule)
            Else
                KeyAscii = 0
            End If
        ElseIf InStr(entrees_decimales_permises, Chr(KeyAscii)) = 0 Then
            KeyAscii = 0
        ElseIf InStr(TextBox1, Virgule) > 0 And KeyAscii = Asc(Virgule) Then
            KeyAscii = 0
        End If
     
        If KeyAscii = 13 Then SendKeys "{TAB}": KeyAscii = 0
    End Sub
     
    '	Saisie entière dans une TextBox
    Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
        If InStr(entrees_entieres_permises, Chr(KeyAscii)) = 0 Then KeyAscii = 0
        If KeyAscii = 13 Then SendKeys "{TAB}": KeyAscii = 0
    End Sub

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Bonsoir casefayere et kiki,
    Pour corriger en cours de saisie je propose...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    Dim ok As Boolean
        If KeyCode = 9 Or KeyCode = 13 Or TextBox1 = "" Then Exit Sub
        ok = Right(TextBox1, 1) Like "#" Or Right(TextBox1, 1) Like ","
        If Not ok Then
            If KeyCode = 110 Or KeyCode = 188 Then
              Else
                TextBox1 = Left(TextBox1, Len(TextBox1) - 1)
            End If
        End If
     
        'juste pour suivre l'évolution de la saisie dans la feuille
        Range("A1") = Val(TextBox1) 
    End Sub

Discussions similaires

  1. Réponses: 12
    Dernier message: 16/01/2011, 15h36
  2. Nombre négatif dans Textbox
    Par manouk dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/02/2010, 11h57
  3. [E-07] Nombre à gauche dans TextBox
    Par chriscamp dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/03/2009, 21h35
  4. [VBA-E]Limite nombre caractères dans TextBox ?
    Par srame dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 26/04/2007, 11h21
  5. arrondir nombre dans un textbox
    Par jeff91 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 12/04/2007, 22h02

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