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 :

USF Format numéric => Mess d'alerte en double [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 633
    Par défaut USF Format numéric => Mess d'alerte en double
    Bonjour,
    J'ai un USF avec des Textbox qui doivent être numérique.
    Dans le Sub TbxY_Change j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub TbxY_Change()
    If Not IsNumeric(TbxY) Then
        MsgBox "Veuillez saisir des chiffres, svp"
        TbxY = ""
        TbxY.SetFocus
    End If
    End Sub
    et si dans la saisie je mets des lettres, le message apparait 2 fois consécutivement.
    dans le bouton Ok j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub CommandButton1_Click()
        Range("A1") = TbxY.Value
    Unload Me
    End Sub
    sur tous les sites que j'ai fait, je vois le même code...
    Quelqu'un peut-il m'aider svp ?
    Merci

  2. #2
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour mouftie,

    Mieux vaudrait gérer l'évènement Exit de ta TextBox.
    Car l'évènement Change gère tous les caractères.

    Personnellement, je gère ces erreurs de saisie lors de l'activation du bouton de validation du formulaire (qui entraîne sa fermeture), en y intégrant une sortie de procédure.

  3. #3
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 633
    Par défaut
    Bonjour Marcel
    Merci pour ton intervention, j'y suis finalement parvenue.
    Je mets l'ensemble de la procédure, si ça peut aidrer...
    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
    Private Sub Ok_Click()
    If IsDate(TbxY) Then
        Else
            MsgBox "Veuillez saisir des chiffres,svp", vbExclamation, "ATTENTION"
            TbxY = ""
            TbxY.SetFocus
            Exit Sub
    End If
        Range("A1") = TbxY.Value
    Unload Me
    End Sub
     
    Private Sub Annul_Click()
    Unload Me
    End Sub
     
    Private Sub TbxY_Change()
        Dim Valeur As Byte
        TbxY.MaxLength = 10 'nb caractères maxi autorisé dans le textbox
        Valeur = Len(TbxY)
            If Valeur = 2 Or Valeur = 5 Then TbxY = TbxY & "/"   'On saisit 15021981 et on a 15/02/1981
            TbxY.AutoTab = True
     
    End Sub
    Private Sub UserForm_Initialize()
    TbxY.SetFocus 'Curseur actif à l'ouverture
    End Sub
    Je mets en résolu
    Merci

  4. #4
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut SOURCES
    Salut,

    Je complète en t'indiquant que tu peux sélectionner toute la chaîne de ton Textbox (en erreur)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With TextBox1
        .SetFocus
        .SelStart = 0
        .SelLength = Len(.Text)
    End With
    issu du tutoriel de Sylkiroad

    http://silkyroad.developpez.com/VBA/...serForm/#LII-E

    D'autre part, pour forcer une valeur numérique dans un Textbox, l'excellent tutoriel de Didier Gonard

    http://didier-gonard.developpez.com/...e-dans-texbox/

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

Discussions similaires

  1. [XL-2013] Erreur format sur cellule depuis USF
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 15/06/2015, 06h56
  2. [XL-2007] Mail d'alerte tableau de formation DE FORMATION
    Par abeaupere dans le forum Excel
    Réponses: 5
    Dernier message: 16/09/2014, 19h36
  3. Calcul et format nombre dans USF
    Par markos63 dans le forum Excel
    Réponses: 4
    Dernier message: 30/11/2013, 12h52
  4. Réponses: 2
    Dernier message: 12/11/2013, 15h25
  5. [E-03] Modifier le format d'un USF
    Par drakkar_agfa dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/03/2009, 23h23

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