EXCEL Pb heures de liste vers TextBox

Résolu
Bonjour à toutes et tous,

Je viens à vous car j'ai un problème avec les heures dans les TextBox
J'ai une feuille EXCEL avec une liste contenant des données variées dont des heures
(en format hh:mm).

J'ai créé un formulaire qui me permets d'ajouter ou modifier des lignes, le soucis et quand les heures remontent dans le formulaire, elles le font en format décimal.
(exemple: 0,5625 pour 13:30) Alors qu'à l'inverse, l'export de la TextBox vers la liste conserve bien le format hh:mm.

Le formulaire servira à la vérification par chacun de ses données perso, il faut bien sur que les données qui remontent soient compréhensibles.
J'avoue avoir bien besoin d'un coup de main sur ce problème, je vous remercie d'avance.

Je joins une version "light" du fichier.

https://www.cjoint.com/?BJhsD0lTaXu

5 réponses

  1. Contributeur
    Salut le forum

    Une façon de faire
    Private Sub NNI_Change()
        Dim Lg As Long
    
        Lg = NNI.ListIndex + 2
        For Each ctl In Me.Controls
            If ctl.Tag > "A" Then
                ctl.Value = Feuil2.Range(ctl.Tag & Lg)
                If ctl.Tag > "K" Then
                    ctl.Value = Format(Feuil2.Range(ctl.Tag & Lg), "hh:mm")
                End If
            End If
        Next
    
    End Sub

    Mytå
    1
    1. merci pour la solution, c'est parfait
      0
  2. Contributeur
    Bonjour,

    je ne vois pas trop où tu mets à jour ton textbox mais le principe est d'utiliser format() (que tu utilises dans le code d'ailleurs...)

    textbox1 = format(ta_valeur,"hh:mm")

    Si ça ne suffit pas indique plus précisément la ligne.

    eric
    0
    1. Bonsoir Eriic,

      ce sont les TextBox "dma, fma, dap et fap" qui me posent problème, lorsque j'ouvre la UserForm, (par bva, je n'ai pas de bouton sur le fichier pour le moment)et que je valide un NNI par la ComboBox, les valeurs contenues dans le tableau feuille Données remontent et les heures des colonnes "L,M,N et O" sont en décimale systématiquement malgré la commande format.
      Voilà qui est peut être un peu plus clair, je suis à ta dispo, merci

      Christophe
      0
      1. Contributeur
        Désolé mais juste le NNI s'affiche
        For Each ctl In Me.Controls
          If ctl.Tag > "A" Then
            ctl.Value = Feuil2.Range(ctl.Tag & Lg)
          End If
        Seul NNI a pour Tag A
        DMA par exemple a pour Tag L

        J'arrete de chercher tant que tu n'indiqueras pas précisément les lignes de code incriminées.
        Les jeux de piste, très peu pour moi.

        eric
        0
      2. Je ne vois pas quoi expliquer de plus, si ce n'est qu'en cliquant sur le CommandButton1 on lance le formulaire, on choisit A00000 dans le combobox du NNI et les données correspondantes de la ligne de ce NNI s'affichent dans le formulaire. Seulement les données 08:00 12:00 13:30 et 17:30 ne s'affichent pas comme tel qu'elles sont mais sous formes de données décimales. Mon problème c'est ça. A part ça tout fonctionne
        0
      3. Contributeur
        Sauf que je prenais le 1er de la liste (ce qui ne parait pas incongru) et les textbox restaient sans valeur avec dma, fma, etc dedans...

        Et qu'il a fallu que je me tape plusieurs dizaines de F8 en pas à pas pour voir où tu mettais à jour le textbox.
        J'ai trouvé l'erreur, c'est simple.

        eric
        0
    2. Merci de votre aide, ça fonctionne parfaitement
      0
      1. Contributeur
        Pour info dans
        Private Sub DMA_Change()
            If Len(DMA) = 4 Then
                conversionHeure DMA
                'TotaliseHeures
                FMA.SetFocus
            End If
        End Sub 
        tu exclus les valeurs telles que 0,5625

        Si tu avais été un peu plus coopératif et dis "je ne met à jour les textbox QUE dans les procédures TextBox_Change" tu aurais eu la réponse plus tôt.
        L'équivalent de ta non réponse était : débrouille-toi à toi à tout faire en pas à pas et cherche, ça peut être n'importe où dans le code. Même si ça te prend 2h, je ne te dirais pas où je les met à jour.

        eric
        0
        1. Désolé Eriic Je suis pas un expert en vba et ce que tu me demandais était autant du charabia pour moi que ce que j'essayais de t'expliquer. Mais visiblement il y a ici des personnes moins susceptibles qui n'ont eu aucune difficulté à trouver la solution et à la communiquer sans polémiquer.
          Pour reprendre ta citation
          Bon, ça c'est fait.

          merci quand même.
          0