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 userform


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 9
    Points : 2
    Points
    2
    Par défaut format heure dans userform
    bonjour a tous

    j'ai un petit soucis dont je suis sur que qq'un a la solution car ca doit pas etre grand chose

    dans l' UF j'ai une Cbx qui fait reference a des heures

    et lorsque je lance l'UF j'ai des chiffres decimaux?

    quelle est la formule magique qui permette de respecter le format de la liste

    merci par avance

    maoricio

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cbx.additem format(variabledécimale,"hh:nn:ss")
    Pas testé mas il me semble me souvenir...
    Edit
    C'est bon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LHeure = 0.458265
    MsgBox Format(LHeure, "hh:nn:ss") '10:59:54

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    merci pour ta reponse rapide

    mais ca marche pas, il y a un truc que je ne dois pas savoir faire

    code pour la cbx

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    For Each Cellule In .Range("P2:P" & .Range("P100").End(xlUp).Row)
        On Error Resume Next
        Coll.Add Cellule, CStr(Cellule)
        If Err = 0 Then
            Me.CBxheure.AddItem (CStr(Cellule))
        End If
        On Error GoTo 0
      Next Cellule
      Set Coll = Nothing
    code que je dois ajouter ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub CBxheure_Change()
    LHeure = 0.458265
    MsgBox Format(LHeure, "hh:mm:ss") '10:59:54
     
    End Sub
    thanks

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Pour renseigner ton combo,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For Each Cellule In .Range("P2:P" & .Range("P100").End(xlUp).Row)
         if Cellule <> "" and instr(Cellule,".") <> 0 then _
            Me.CBxheure.AddItem Format(Cellule, "hh:mm:ss")
    Next Cellule
    Dans le "If" je vérifie que cellule contient bien quelque chose et que ce quelque chose est bien décimal. On pourrait aussi vérifier que c'est bien un nombre (cnum(Cellule))
    pour Coll.Add Cellule, CStr(Cellule), je ne comprends pas ce que tu fais...
    A+

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    merci ca fonctionne mais ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     'Liste des heures
      For Each Cellule In .Range("P2:P" & .Range("P100").End(xlUp).Row)
             Me.CBxheure.AddItem Format(Cellule, "hh:mm")
         On Error Resume Next
        Coll.Add Cellule, CStr(Cellule)
        If Err = 0 Then
            Me.CBxheure.AddItem (CStr(Cellule))
        End If
        On Error GoTo 0
      Next Cellule
      Set Coll = Nothing
    j'ai bien ce que je voulais sauf qu'en plus des heures de la liste il a aussi ajouté les memes valeurs mais en decimal

    donc j'ai dans la cbx 8H00 et 0,33 etc...

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Si tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        If Err = 0 Then
            Me.CBxheure.AddItem (CStr(Cellule))
        End If
    c'est normal qu'il t'ajoute le nombre décimal, mon code à moi ne contient pas d'erreur...

    Tu ne m'as toujours pas dit à quoi servait la deuxième Coll.add

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    hummm je sais pas !!

    j'ai recupere d'un collegue qui n'est plus la
    tout marche super bien sauf qu'on m'a demandé de rajouter une cbx heure et je galere

    le probleme est que si je vire ce qui est en rouge

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
      'Liste des heures
      For Each Cellule In .Range("P2:P" & .Range("P100").End(xlUp).Row)
             If Cellule <> "" And InStr(Cellule, ".") <> 0 Then _
           Me.CBxheure.AddItem Format(Cellule, "hh:mm")
         On Error Resume Next
        Coll.Add Cellule, CStr(Cellule)
        If Err = 0 Then
            Me.CBxheure.AddItem (CStr(Cellule))
        End If
        On Error GoTo 0
      Next Cellule
      Set Coll = Nothing
    il ne lance plus la macro, il me dit qu'il manque des with des end ...
    enfin ca marche plus !!

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Ok, alors dis-moi ce qu'il y a, ailleurs dans ton code, après
    Set Coll = (ici autre chose que NoThing)

    Pour le code, supprime simplement la gestion d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    For Each Cellule In .Range("P2:P" & .Range("P100").End(xlUp).Row)
           If Cellule <> "" And InStr(Cellule, ".") <> 0 Then _
                Me.CBxheure.AddItem Format(Cellule, "hh:mm")
           On Error Resume Next
           Coll.Add Cellule, CStr(Cellule)
           'If Err = 0 Then
                 'Me.CBxheure.AddItem (CStr(Cellule))
           'End If
           On Error GoTo 0
    Next Cellule
    Set Coll = Nothing
    mets les trois ligne en rouge en remarque, comme je l'ai fait

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    il y a que des set coll= nothing

    il y en a une dizaine dans tout le code

    c'est un code qui fait au moins 500 lignes peut etre meme plus


    si je mets en rouge en remarque ca ne marche pas non plus

  10. #10
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Edit
    Je viens de comprendre quelque chose
    Ce que "veut faire" ton code : Si tu as une erreur dans le format (par exemple que ta cellule ne contient pas un nombre), il met le contenu de la cellule dans le combo sans le formater.
    On modifie le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For Each Cellule In .Range("P2:P" & .Range("P100").End(xlUp).Row)
           If Cellule <> "" And IsNumeric(Cellule) and InStr(Cellule, ".") <> 0 Then
                  Me.CBxheure.AddItem Format(Cellule, "hh:mm")
                else
                  Me.CBxheure.AddItem (CStr(Cellule))
                  Coll.Add Cellule, CStr(Cellule) 'ça tu le mets ici ou ... (*)
           endif
           'Coll.Add Cellule, CStr(Cellule) '(*) ... ici 
    Next Cellule
    Set Coll = Nothing
    Quant à Coll.add, c'est peut-être une "bidule" pour récupérer les erreurs (?????) tu testes ce qui convient le mieux

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    il y a un truc qui ne passe pas

    j'ai fais ce que tu m'as dit mais j'ai toujours le meme pb

    le mieux que je puisse avoir, c'est l'heure et la version decimale

    comment ca se fait qu'il ne prenne pas la liste telle quelle ce serait plus simple

  12. #12
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Tu dois avoir un code ailleurs qui fait ça
    Donne la totalité de la procédure et donne moi l'instanciation de Coll
    Set Coll = Quelque chose autre que Nothing
    Donne également les déclarations (Dim .... )
    Tant qu'on ne sait pas ce qu'est Coll, on parle dans le vide.
    Il est possible qu'une colonne soit ajoutée et que dans cette colonne il ajoute le nombre décimal.
    A+

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    j'ai fait rechercher pour etre sur de ne pas louper un SET COLL
    et tous sont set coll=nothing


    en ce qui concerne les dim les voila
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim DerLigne As Byte
    Dim Ligne As Byte
    Dim Flag As Boolean
    en esperant que ca peut aider

    encore merci

  14. #14
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Même dans le module qui ouvre l'userform ?

  15. #15
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    ben oui

    j'ai a nouveau fait une recherche mais rien de rien

    set coll=nothing

  16. #16
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    N'as-tu pas un module, une macro, quelque chose qui porte ce nom ? Parce que sinon, cette ligne
    Coll.Add Cellule, CStr(Cellule)
    n'a rien à faire dans ton code.

    PS - J'allais oublié... Bienvenue sur le forum !

    NB - Comme tu es tout neuf, je te donne un conseil que tu trouverais dans les règles du forum : Quand tu poses une question, sois le plus précis possible.
    Dans chaque question que tu nous as posée, tu en as rejouté une couche une fois la réponse reçue.
    Dans l'autre discussion que tu as ouverte, tu nous aurais tout de suite précisé : "Comment formater une date prise dans une variable", associée à un exemple de contenu de cette variable, nous étions trois à être prêts à te répondre.
    En outre, en cas d'erreur, précise le message d'erreur et la ligne de code, ça facilite la compréhension
    Bon courage pour la suite

  17. #17
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    ce qui est etonnant c'est qu'elle apparait plusieurs fois environ X10

    c'est genant ?

    je veux juste avoir les heures moi c'est tout

    disons que j'ai un tableau qui recap toutes les infos recoltées dans l'userform

    encore merci de te pencher sur mon cas

  18. #18
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Ça t'ennuierais de joindre le fichier ? Tu le "zippes" et tu le mets en pièce jointe (icône trombone) parce que là, je cale.
    Tu dis

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/04/2012, 15h15
  2. 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
  3. affichge format heure dans textbox
    Par lio62 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/06/2007, 12h53
  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