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 :

Format heure dans un textbox


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2012
    Messages : 143
    Points : 93
    Points
    93
    Par défaut Format heure dans un textbox
    Bonjour à tous,
    J'aimerais obliger l'utilisateur à saisir l'heure sous la forme hh:mm dans un textbox.
    Existe-t-il à votre connaissance une fonction comme IsDate ou une solution pour obliger l'utilisateur à saisir les deux points pour séparer l'heure et les minutes ?

    Merci par avance de m'aiguiller.
    Laurent

  2. #2
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,

    si tu es sur que les utilisateurs ont bien commencé la frappe pour les heures avec 2 chiffres (1 zero avant 10 => 01, 02, 03, etc.), tu peux essayer ce code qui répond à ta demande :
    ....une solution pour obliger l'utilisateur à saisir les deux points pour séparer l'heure et les minutes ?
    donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)'textbox1 à changer par le nom de ton textbox
    If Len(TextBox1) = 2 Then
      If Chr(KeyAscii) <> ":" Then KeyAscii = Asc(":")
    End If
    End Sub

  3. #3
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Salut,

    Personellement j'utiliserai "Format"

    tape le dans ton code VBA et fais F1 ...

    Tu verras comme c'est interessant ...

    @ +

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut heu
    Bonjour
    je rajouterais l'exception des autre caractères que numérique

    l'impossibilité de taper une heure incohérente (plus de 23 heure ou plus de 59minute)




    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 Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'textbox1 à changer par le nom de ton textbox
    Dim touche_autorisée As String
    touche_autorisée = "[01234567989:]"
    'on ne peut pas taper autre chose que des chiffres
    If Not ChrW(KeyAscii) Like touche_autorisée Then KeyAscii = 0
      'ici on empeche de taper plus de 4 chiffre(2 pour l'heure,2pour les minutes )
      If Len(TextBox1) = 5 Then KeyAscii = 0: Exit Sub
       'ici on empeche de taper plus gros que 2 pour le premier chiffre de l'heure
       If Len(TextBox1) = 0 And Not ChrW(KeyAscii) Like "[0-1-2]" Then KeyAscii = 0
         'ici on empeche de taper plus gros que 3 pour le deuxieme chiffre de l'heure en fonction du premier
         If Len(TextBox1) = 1 And TextBox1.Value = 2 And Not ChrW(KeyAscii) Like "[1-2-3]" Then KeyAscii = 0
            'ici on empeche de taper plus gros que 5 pour les dizaine de minute(59 minutes maximum)
            If Len(TextBox1) = 3 And Not ChrW(KeyAscii) Like "[1-2-3-4-5]" Then KeyAscii = 0
    If Len(TextBox1) = 2 Then
      If ChrW(KeyAscii) <> ":" Then KeyAscii = Asc(":")
    End If
    End Sub
    voila voila

    mais si tu avais fait une petite recherche tu aurais trouvé CECI:
    qui une de mes contributions a ce sujet
    ca t'aurait pas mal éguillé

    Au plaisir

Discussions similaires

  1. Probléme de format heure dans le textbox
    Par jijie dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/02/2008, 18h20
  2. affichge format heure dans textbox
    Par lio62 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/06/2007, 12h53
  3. heure dans un textbox
    Par buhrne dans le forum Général VBA
    Réponses: 11
    Dernier message: 23/04/2007, 16h53
  4. probleme format heure dans une requete
    Par adenov dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 14/03/2007, 12h26
  5. Format heure dans Interbase
    Par Battomura dans le forum InterBase
    Réponses: 2
    Dernier message: 14/03/2003, 13h17

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