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 :

Numerique dans textBox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 36
    Par défaut Numerique dans textBox
    Bonjour

    Je patauge un peu encore!!! j'ai deux problemes dans et avec un textbox
    La saisie dans ce textbox5 ne doit etre que numérique je le fais avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub textBox5_keyPress(ByVal keyAscii As MSForms.ReturnInteger)
    'Impose une valeur de poid avec le clavier numérique
      If InStr("0123456789.", Chr(keyAscii)) = 0 Then keyAscii = 0
    End Sub
    Ensuite je vérifie que la valeur entrée n'est pas supérieur avec le textBox4 avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub TextBox5_Change()
    Dim A
    Dim B
    A = TextBox4
    B = TextBox5
    If B > A Then
    MsgBox "Le Poid Indiqué est Superieur au Poid Initial", vbCritical
    End If
    Mais dès que j'utilise la virgule du clavier numérique le message s'affiche !!!
    J'ai donc remplacé le "." du clavier par la virgule du clavier alphabetique çà marche mais je trouve çà dommage!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If InStr("0123456789,", Chr(keyAscii)) = 0 Then keyAscii = 0
    2eme Problème
    le nombre saisie dans ce textbox5 est inscrits dans une feuil de calcul avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ActiveCell.Value = TextBox5
    Ma feuil de calcul voit un format texte elle à surement raison !!!
    Peut on avoir un format nombre directement ?
    Merci d'avoir pris le temps de lire

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    Problème récurrent entre feuille et UF.
    essaye ces 2 solutions..
    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
    Private Sub TextBox5_Change()
        If Not IsNumeric(TextBox5) Then
            'éventuellement mettre un message
            TextBox5 = ""
            TextBox5.SetFocus
            Exit Sub
        End If
        If CDbl(TextBox5) > CDbl(TextBox4) Then
            MsgBox "Le Poid Indiqué est Superieur au Poid Initial", vbCritical
            TextBox5 = ""
            TextBox5.SetFocus
        End If
    End Sub
     
    Sub Memorise()
        'ou ActiveCell si tu préfère
        Cells(Lig, Colonne) = CDbl(Replace(TextBox5, ".", ","))
    End Sub
    A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 36
    Par défaut
    Bonsoir

    Merci d'avoir répondu aussi rapidement j'ai essayé
    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 TextBox5_Change()
        If Not IsNumeric(TextBox5) Then
            'éventuellement mettre un message
            TextBox5 = ""
            TextBox5.SetFocus
            Exit Sub
        End If
        If CDbl(TextBox5) > CDbl(TextBox4) Then
            MsgBox "Le Poid Indiqué est Superieur au Poid Initial", vbCritical
            TextBox5 = ""
            TextBox5.SetFocus
        End If
    End Sub
    à la place de celui ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub TextBox5_Change()
        Dim A
        Dim B
        A = TextBox4
        B = TextBox5
        If B > A Then
        'MsgBox "Le Poid Indiqué est Superieur au Poid Initial", vbCritical
        End If
    End Sub
    et quand j'appuis sur le point du clavier numerique çà à pour effet de supprimer les chiffres saisie !!
    L'autre code n'a aucun effet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Memorise()
        'ou ActiveCell si tu préfère
        ActiveCell  = CDbl(Replace(TextBox5, ".", ","))
    End Sub
    Je ne peux pas désigné la cellule active car je prends la derniere de libre

  4. #4
    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
    Salut,à tester pour la sasiie, permet uniquement une saisie décimale, remplace automatiquement le . par une , ,interdit la saisie d'un second . ou ,
    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
    Option Explicit
     
    Const entrees_decimales_permises = ".,0123456789" & vbCr & vbBack
    Const Point = "."
    Const Virgule = ","
     
    Private Sub TextBox5_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
        If KeyAscii = Asc(Point) Then
            If InStr(TextBox5, Virgule) = 0 Then
                KeyAscii = Asc(Virgule)
            Else
                KeyAscii = 0
            End If
        ElseIf InStr(entrees_decimales_permises, Chr(KeyAscii)) = 0 Then
            KeyAscii = 0
        ElseIf InStr(TextBox5, Virgule) > 0 And KeyAscii = Asc(Virgule) Then
            KeyAscii = 0
        End If
    End Sub

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 36
    Par défaut
    Bonsoir
    Super çà marche j'ai juste suprimé la virgule dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Const entrees_decimales_permises = ".,0123456789" & vbCr & vbBack
    mais j'ai toujour le 2eme problème sans vouloir abuser !!! Peut on renseigner la feuil avec un format Nombre ? ou corriger dans la cellule active de la feuil le format texte en format nombre?

    merci

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Citation Envoyé par YOP33 Voir le message
    2eme Problème
    le nombre saisie dans ce textbox5 est inscrits dans une feuil de calcul avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ActiveCell.Value = TextBox5
    Je ne peux pas désigné la cellule active car je prends la derniere de libre
    Je suppose que tu veux rire ???

    Et ton textbox il est sur quoi ? Un Userform ou une feuille.

  7. #7
    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
    Re,
    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
    Option Explicit
     
    Const entrees_decimales_permises = ".,0123456789" & vbCr & vbBack
    Const Point = "."
    Const Virgule = ","
     
    Private Sub TextBox5_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
        If KeyAscii = Asc(Point) Then
            If InStr(TextBox5, Virgule) = 0 Then
                KeyAscii = Asc(Virgule)
            Else
                KeyAscii = 0
            End If
        ElseIf InStr(entrees_decimales_permises, Chr(KeyAscii)) = 0 Then
            KeyAscii = 0
        ElseIf InStr(TextBox5, Virgule) > 0 And KeyAscii = Asc(Virgule) Then
            KeyAscii = 0
        End If
    End Sub
     
    Private Sub TextBox5_Exit(ByVal Cancel As MSForms.ReturnBoolean)
        TextBox5.Text = Format(TextBox5, "#,##0.00")
        ' si TextBox5 vide
        If IsNumeric(TextBox5) Then
            ActiveCell = CDbl(TextBox5)
        End If
    End Sub

Discussions similaires

  1. [Débutant] saisi numerique dans un textbox en visual basic 2008
    Par 6ccattleya dans le forum VB.NET
    Réponses: 3
    Dernier message: 21/06/2012, 10h54
  2. [C++] retour chariot dans textbox
    Par stgi02 dans le forum VC++ .NET
    Réponses: 2
    Dernier message: 20/04/2006, 11h14
  3. [VB6]Afficher du texte dans Textbox desactivé + scrollbar?
    Par toninlg dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/03/2006, 18h40
  4. Extraire du numerique dans une chaine de caractere
    Par jane2002 dans le forum Access
    Réponses: 4
    Dernier message: 08/03/2006, 12h33
  5. [VB.NET] Sauvegarde dans TextBox des logons utilisés
    Par stephane93fr dans le forum ASP.NET
    Réponses: 3
    Dernier message: 27/10/2005, 11h00

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