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 :

Définir le type des données contenues dans une TextBox


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 80
    Points : 46
    Points
    46
    Par défaut Définir le type des données contenues dans une TextBox
    Bonjour,

    Peut qun m'aider à définir le type de données que j'ai dans une variable de type String (provenant de la saisie dans une textbox). Je m'assurer que l'utilisateur a bien tappé une nombre et une date dans les textbox correspondantes.

    Merci d'avance et a bientôt.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut
    Bonjour,

    Pour vérifier que l'utilisateur a bien rentré un nombre dans ta TextBox, jette un oeil du côté de la méthode IsNumeric, cela répondra à ton problème.

    Pour ce qui est de la date de la forme xx/xx/xxxx par exemple, tu peux coupler IsNumeric à un découpage de la chaîne pour vérifier que le caractère "/" est bien présent aux bonne positions. Pour les découpages de chaînes de caractères, vas jeter un oeil dans les tutos sur Mid et InStr.

    Reviens-nous voir si tu n'arrives pas à te débrouiller avec cela
    DeaD

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 80
    Points : 46
    Points
    46
    Par défaut
    merci DeaD78... j'y vais (:

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 598
    Points : 34 283
    Points
    34 283
    Par défaut
    Salut,
    plus efficace encore qu'Isnumeric ici : IsDate()
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut
    Re,

    Déjà un petit exemple pour que tu puisses avancer. J'ai créé un Userform avec une TextBox et un bouton de contrôle histoire de valider la saisie. Ca donne donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test()
     
    UserForm1.Show
     
    End Sub
    Puis, dans CommandButton1_Click() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub CommandButton1_Click()
     
        If IsNumeric(UserForm1.TextBox1.Value) Then
            MsgBox ("C'est bon !")
            Unload UserForm1
        Else
            MsgBox ("C'est pas bon, recommencez !")
            UserForm1.TextBox1.Value = ""
            UserForm1.Repaint
        End If
     
    End Sub
    Il ne te reste donc plus qu'à faire pareil avec la date. Je dois avouer qu'utiliser IsDate() comme le propose jpcheck sera encore plus efficace... à moins que ça ne soit pas une date avec laquelle tu travailles mais un String déguisé
    DeaD

  6. #6
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 80
    Points : 46
    Points
    46
    Par défaut
    mm. Sauf que IsDate n'existe pas chez moi (: j'ai créé donc une version a moi grace au fonctions que vous m'avez indiquées et ça donne ça:

    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
    Private Function isDate(var As String) As Boolean
        If (Len(var) = 10) Then
            If (InStr(var, "/") = 3) Then
                If (InStr(4, var, "/") = 6) Then
                    If (IsNumeric(Left(var, 2))) Then
                        If (IsNumeric(Right(var, 4))) Then
                            If (IsNumeric(Left(Right(var, 7), 2))) Then
                                If (Left(var, 2) >= 1 And Left(var, 2) <= 31 And Left(Right(var, 7), 2) >= 1 And Left(Right(var, 7), 2) <= 12) Then
                                    isDate = True
                                End If
                            End If
                        End If
                    End If
                End If
            End If
        End If
    End Function
    C'est moche, mais ça marche bien. En fait les ifs sont imbriqués car les tests doivent se suivre.
    Merci encore une fois et bonne continuation.

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

Discussions similaires

  1. [XL-2010] Afficher des données cellules dans une textbox et pouvoir les modifier ensuite
    Par chiken samada dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/02/2015, 11h11
  2. Impression des données contenues dans une div
    Par leara500 dans le forum Général Java
    Réponses: 5
    Dernier message: 07/03/2013, 21h53
  3. Réponses: 2
    Dernier message: 23/12/2012, 15h46
  4. Utilisation Des Données Contenues Dans Une Liste
    Par Sniffle dans le forum Général Python
    Réponses: 6
    Dernier message: 10/03/2009, 16h41
  5. Réponses: 0
    Dernier message: 24/07/2007, 13h22

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