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 [h]:mm dans un textbox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 19
    Par défaut Format [h]:mm dans un textbox
    Bonjour,

    Je souhaite afficher dans un textbox une durée, qui peut être supérieure à 24h. La solution évidente est l'utilisation de format(Données, "[h]:mm")... sauf que manifestement VBA ne comprend pas et m'affiche :01 quelle que soit la valeur.

    La donnée initiale est dans une variable

    J'ai l'impression que VBA ne reconnait pas correctement le format "[h]:mm".

    voilà le bout de code correspondant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.TextBox4 = Format(DonnéesAgents(Me.ListBox1.ListIndex + 1, 4), "[h]:mm")
    dans lequel DonnéesAgents((Me.ListBox1.ListIndex + 1, 4) vaut "01/01/1900 08:40:00"

    qui affiche ":01" dans le textbox, même si j'utilise CDate :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.TextBox4 = Format(CDate(DonnéesAgents(Me.ListBox1.ListIndex + 1, 4)), "[h]:mm")

    Existe-t-il une autre solution pour afficher cette durée ?

    Merci pour votre réponse.

    Olivier

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Je ne suis pas certain d'avoir deviné ...

    Ton 01/01/1900 représente une journée ?

    Si oui (et uniquement si oui) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Command1_Click()
     Dim toto As String, titi As Date
     toto = "01/01/1900 08:40:00"
     titi = DateSerial(Year(toto), Month(toto), Day(toto))
     MsgBox Format(DateDiff("d", titi - 1, titi) * 24 + Hour(toto), "00") & ":" & Format(Minute(toto), "00")
    End Sub

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 19
    Par défaut
    Euh,effectivement, ce n'est pas clair...

    Dans une feuille Excel, j'ai un nombre qui représente une durée. En format standard dans la feuille, il s'affiche : 1,36111111111111. En format date, il s'affiche "01/01/1900 08:40:00". En format [h]:mm, il s'affiche "32:40"

    Par une connexion ADO, je lis cette valeur, que je met dans la variable DonnéesAgents(i, 4)

    Je veux afficher cette variable comme une durée dans un textbox, et j'utilise format (DonnéesAgents(i, 4),"[h]:mm"). Et là, ça ne marche pas.

    Je ne sais pas si cette explication est meilleure que la première... En tout cas, merci de m'avoir répondu.

    Olivier

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour tlm,

    Supposons que dans ta cellule A1 tu as la valeur 32:40 au format "[h]:mm"
    Essaye comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim DonnéesAgents As String
    DonnéesAgents = Range("A1").Text
    Me.TextBox4 = DonnéesAgents

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 19
    Par défaut
    En fait, en fouillant, je trouve que VBA a un comportement bizarre. J'ai essayé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    MsgBox Format("01/01/1900 08:40:00", "[h]:mm") 
    MsgBox Format(CDate("01/01/1900 08:40:00"), "[h]:mm")
    MsgBox Format("01/01/1900 08:40:00", "#.###########")
    MsgBox Format(1.36111111111111, "[h]:mm")
    Le premier et le deuxième donnent : ':01'
    le troisième 2,361111111
    le quatrième : ':12'

    Je ne comprends pas la logique de tout ça...

    Olivier

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Le format [h] n'est valide que dans une cellule.
    Tu as le choix:
    Soit passer par une cellule de feuille Excel comme te le propose fring, soit utiliser cette formule:
    http://www.developpez.net/forums/sho...05#post2965805
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

Discussions similaires

  1. [AC-2007] Format d'affichage dans une textbox !
    Par Rapheux dans le forum IHM
    Réponses: 1
    Dernier message: 04/10/2011, 16h17
  2. Format du texte dans une TextBox
    Par ghosty04 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 30/06/2009, 08h20
  3. Format d'affichage dans un textbox
    Par jfdmagic dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 26/03/2009, 11h39
  4. [E-03] Intégrer un format date spécifique dans une textBox
    Par moilou2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/12/2008, 14h36
  5. Format Chiffres + lettres dans un textbox
    Par stefane26 dans le forum Excel
    Réponses: 7
    Dernier message: 04/07/2007, 09h24

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