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 :

Vérification de saisie TextBox [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    retraite
    Inscrit en
    Décembre 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraite
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2012
    Messages : 38
    Par défaut Vérification de saisie TextBox
    Bonjour à tous et à toutes et comme il est encore temps « BONNE ET HEUREUSE ANNEE 2014 ».
    Ma demande aujourd’hui est sur la vérification du format de saisie dans un TextBox.
    Sur mon userform j’ai un TextBox ou l’on doit saisir l’heure d’enregistrement au format HH:MM (exemple 10:00).
    J’ai un code qui à la sortie du TextBox vérifie le format de saisie.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub TextBox44HEUREBIS_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If Not IsDate(TextBox44HEUREBIS) Then
            MsgBox "Saisir l'heure au format HH:MM !!!"
              Me.TextBox44HEUREBIS.Value = ""
                Me.TextBox44HEUREBIS.SetFocus
      Exit Sub
     End If
     
    End Sub
    Mais ce dernier autorise deux formats
    10:00
    10/00
    Comment faire pour laisser passer que le seul format 10:00 (HH:MM)
    Merci pour votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub valider_Click()
    Debug.Print IsTime(Me.TextBox1)
    End Sub
    Function IsTime(T As String) As Boolean
    If Len(T) <> 5 Then Exit Function
    If InStr(T, ":") = 0 Then Exit Function
    If IsDate(T) = False Then Exit Function
    IsTime = True
    End Function
    Dernière modification par Invité ; 24/01/2014 à 13h31.

  3. #3
    Membre averti
    Homme Profil pro
    retraite
    Inscrit en
    Décembre 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraite
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2012
    Messages : 38
    Par défaut
    Bonjour rdurupt et merci pour ton aide,
    J'ai inséré ta solution dans mes macros comme ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub TextBox44HEUREBIS_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Debug.Print IsTime(Me.TextBox44HEUREBIS)
    End Sub
     
    Function IsTime(T As String) As Boolean
    If Len(T) <> 5 Then Exit Function
    If InStr(T, ":") = 0 Then Exit Function
    If IsNumeric(T) = True Then Exit Function
    If IsDate(T) = False Then Exit Function
    IsTime = True
    End Function
    A la place de :
    Private Sub valider_Click()
    j'ai mis :
    Private Sub TextBox44HEUREBIS_Exit(ByVal Cancel As MSForms.ReturnBoolean)

    et à la place de :
    Debug.Print IsTime(Me.TextBox1)
    j'ai mis :
    Debug.Print IsTime(Me.TextBox44HEUREBIS)

    J'ai lancé mon userform et j'ai saisi dans ma TextBox44HEUREBIS une heure avec un mauvais format du style 11h02 à la sortie du TextBox44HEUREBIS pas de blocage ma saisie semble etre acceptée alors quelle ne correspond pas au format !
    Après plusieurs essais avec différents formats rien n'est refusé.
    Ou est mon erreur ?
    Merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    debug.print affiche le résultat dans la fenêtre d'exécution [Ctrl] + [G]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub TextBox44HEUREBIS_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If Not IsTime(TextBox44HEUREBIS) Then
            MsgBox "Saisir l'heure au format HH:MM !!!"
              Me.TextBox44HEUREBIS.Value = ""
                Me.TextBox44HEUREBIS.SetFocus
      Exit Sub
     End If
     
    End Sub
    Istime est une fonction que j'ai créé pour que tu la substitue à Isdate!

  5. #5
    Membre averti
    Homme Profil pro
    retraite
    Inscrit en
    Décembre 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraite
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2012
    Messages : 38
    Par défaut
    bonjour rdurupt,
    Je reprends le cours de la discussion après une demi-journée d'obligations.
    J'ai compris ta dernière explication et donc j'ai placé le code de la manière suivante :

    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
    Function IsTime(T As String) As Boolean
    If Len(T) <> 5 Then Exit Function
    If InStr(T, ":") = 0 Then Exit Function
    If IsNumeric(T) = True Then Exit Function
    If IsDate(T) = False Then Exit Function
    IsTime = True
    End Function
     
    'XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX
     
    Private Sub TextBox44HEUREBIS_Exit(ByVal Cancel As MSForms.ReturnBoolean)
     
    If Not IsTime(TextBox44HEUREBIS) Then
            MsgBox "Saisir l'heure au format HH:MM !!!"
              Me.TextBox44HEUREBIS.Value = ""
                Me.TextBox44HEUREBIS.SetFocus
      Exit Sub
     End If
     
    End Sub
    Après le lancement de l'Userform et la saisie d'une heure au mauvais format ton code fonctionne à merveille.
    Donc je viens te remercier pour ton aide rapide et efficace.
    Merci et bon WE

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

Discussions similaires

  1. [C#] Vérification de saisie
    Par Phenomenium dans le forum Windows Forms
    Réponses: 14
    Dernier message: 10/10/2008, 12h16
  2. [Calcul] Bug lors d'un calcul depuis une saisie TextBox.
    Par telodo dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 28/09/2007, 01h15
  3. Bloquer saisie textbox
    Par jedi186 dans le forum VB.NET
    Réponses: 11
    Dernier message: 10/06/2007, 11h37
  4. Réponses: 2
    Dernier message: 29/11/2006, 15h42
  5. [C#][VS2005]Contrôle utilisateur et saisie TextBox
    Par caelum dans le forum Windows Forms
    Réponses: 2
    Dernier message: 19/04/2006, 21h24

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