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 :

Eviter le sigle Euro dans une textbox [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 86
    Par défaut Eviter le sigle Euro dans une textbox
    Bonsoir,

    Je souhaiterai éviter la saisie du sigle Euro dans une textbox.

    Merci pour votre aide et bonne soirée.



    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
    'Verification de la saisie de la TxtBoxPriAch
    Private Sub TxtBoxPriAch_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Dim chaine
    chaine = "0123456789,€"
    'Si la saisie n'est pas un caractère compris entre 0 et 9, et la virgule
    'et qu'elle n 'est pas non plus une des touches supprimer
    'ou qu'elle n'est pas non plus une seconde virgule
    If InStr(chaine, Chr(KeyAscii)) = 0 And Not KeyAscii = 8 Or InStr(TxtBoxPriAch.Value, ",") <> 0 And Chr(KeyAscii) = "," Then
        'Alors emettre un bip et afficher un message d'erreur
        Beep
        MsgBox "Le prix d'achat doit être une valeur numèrique et le séparateur décimal doit être une virgule !", , "PRIX D'ACHAT"
        'Assigner un KeyAscii vide à la txtBoxPriAch
        KeyAscii = 0
    End If
    End Sub

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Une solution parmi d'autres pour contrôler la saisie dans le textbox et le nombre de virgules.

    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
     
    Private Sub TxtBoxPriAch_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
     
    Dim CtrI As Integer
    Dim NbVirgules As Integer
     
        On Error Resume Next
        If InStr("1234567890,-", Chr(KeyAscii)) = 0 Then KeyAscii = 0
     
        For CtrI = 1 To Len(TxtBoxPriAch)
            Select Case Mid(TxtBoxPriAch, CtrI, 1)
                Case ","
                     NbVirgules = NbVirgules + 1
                     If NbVirgules > 1 Then
                        KeyAscii = 0
                        TxtBoxPriAch = Mid(TxtBoxPriAch, 1, Len(TxtBoxPriAch) - 1)
                        MsgBox ("Il ne peut y avoir qu'une seule virgule !")
                     End If
           End Select
       Next CtrI
     
    End Sub
    Cordialement.

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 86
    Par défaut
    Merci Eric,

    C'est parfait !!!

    Serait-ce trop te demander que de m'expliquer ton code ?

    Encore merci et bonne soirée

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InStr("1234567890,-", Chr(KeyAscii)) = 0
    n'autorise la saisie que des caractères compris dans "1234567890,-".

    Se pose le problème du nombre de virgules (et éventuellement du signe -) puisque ce caractère est autorisé. Il faut donc compter à chaque nouveau caractère, s'il y a plusieurs virgules. On compare chaque caractère contenu dans le textbox et pour chaque "," on incrémente un compteur. Si ce compteur est égal à 2, on enlève le dernier caractère saisi.

    Cordialement.
    Dernière modification par AlainTech ; 15/06/2013 à 18h31. Motif: Suppression de la citation

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 86
    Par défaut
    Chapeau bas et encore merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Affichage dans une textbox
    Par philo71 dans le forum MFC
    Réponses: 25
    Dernier message: 30/01/2006, 09h34
  2. [VB]Problème d'effacement dans une TextBox
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 24/01/2006, 17h55
  3. [Javascript] appui sur la touche entrée dans une textbox
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 02/01/2006, 11h19
  4. Mettre une date par defaut dans une textBox.
    Par yaumme dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 01/12/2005, 22h39
  5. [c#]Gros text à afficher dans une textbox
    Par famemaur dans le forum ASP.NET
    Réponses: 3
    Dernier message: 04/05/2005, 10h12

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