Microsoft 365 Mettre la 4ème colonne d'une ListBox au format [h]:mm

NONO14

XLDnaute Occasionnel
Bonjour à toutes et à tous,

Dans mon application j'ai supprimé la ComboBox (ceux qui me suivent comprendront - https://excel-downloads.com/threads...omboBox à 3 colonnes avec les données d'un TS ) et je l'ai remplacé par une ListBox.
La ListBox est bien alimentée selon le code ci-joint, cependant je souhaiterai que la 4ème colonne soit au format [h]:mm.
Avec le code ci-joint, la 4ème colonne donne le résultat ":12".
Qu'ai-je fais qui ne convienne pas ?
Merci par avance pour votre aide
1728460462766.png

VB:
Sub RempliListBox()
Dim Ws As Worksheet
Dim Tbl As ListObject
Dim I As Long, Col As Long
Dim Data As Variant

'Définir la feuille de calcul et le tableau structuré
    Set Ws = Sheets("Liste_agents")
    Set Tbl = Ws.ListObjects("t_Noms")
   
'On récupére les données du TS
    Data = Tbl.DataBodyRange.Value
   
   
    With UfGestTemps.MultiPage1.Pages(0)

'On définie le nbre de colonnes de la ListBox
    .Lst_Employ.ColumnCount = 4

'On remplit la ListeBox avec les données du TS
    For I = 1 To UBound(Data, 1)
        .Lst_Employ.AddItem
            For Col = 1 To 4

'On formate la 4ème colonne au format "[h]:mm"
                If Col = 4 Then
                    .Lst_Employ.List(I - 1, Col - 1) = Format(Data(I, Col), "[h]:mm")
                Else
                    .Lst_Employ.List(I - 1, Col - 1) = Data(I, Col)
                End If
            Next Col
    Next I
End With
End Sub
 
Dernière édition:
Solution
Bonjour,

Ta macro de #1 :
VB:
Sub RempliListBox()
'
Dim Ws As Worksheet
Dim Tbl As ListObject
Dim I As Long, Col As Long
Dim Data As Variant

    ' Définir la feuille de calcul et le tableau structuré
    Set Ws = Sheets("Liste_agents")
    Set Tbl = Ws.ListObjects("t_Noms")

    ' On récupére les données du TS
    Data = Tbl.DataBodyRange.Value

    With UfGestTemps.MultiPage1.Pages(0)

        ' On définie le nbre de colonnes de la ListBox
        .Lst_Employ.ColumnCount = 4

        ' On remplit la ListBox avec les données du TS
        For I = 1 To UBound(Data, 1)
            .Lst_Employ.AddItem
            For Col = 1 To 4
                ' On formate la 4e colonne au format "[h]:mm"
                If Col = 4 Then...

TooFatBoy

XLDnaute Barbatruc
Qu'elle est l'intérêt de ta proposition ? Tu as certainement eu une idée en faisant ça
Je profite de votre dégression pour en apporter une nouvelle. ;)


- Quand le UserForm de saisie du MdP s'affiche, le champ de saisie a-t-il le focus chez toi ?
(pas chez moi)

- Si tu valides la saisie par la touche <Entrée>, cela valide-t-il immédiatement la saisie ?
(chez moi je dois appuyer une seconde fois)

- Si tu appuies sur la touche <Echap>, cela ferme-t-il le UserForm ?
(chez moi il ne se passe rien. Je suis obligé d'aller cliquer sur le bouton "Annuler")
 

NONO14

XLDnaute Occasionnel
Re
As tu regardé ce quelle fait , par rapport à la formule très simple "=Aujourdhui()"
mais si cette affichage te convient c'est ton Projet !
tu dis :

juste l'idée de formater la Date autrement !
bonne continuation
Jean marie
Oui, j'ai mis ta formule dans mon projet. Je voulais juste savoir ce qu'elle faisait de plus, c'est tout, pure curiosité de ma part.
Merci et bonne soirée
 

TooFatBoy

XLDnaute Barbatruc
Donne moi la bonne je suis aussi la pour apprendre (je suis nul en formule) Lol
Pardon, je me suis mal fait comprendre car je n'ai pas été assez précis dans mon propos.

Je ne parlais pas de la syntaxe de la formule, mais de la syntaxe de la phrase affichée : contrairement à mes voisins les Allemands, on ne met pas de majuscules au milieu d'une phrase, et encore moins sur le nom d'un mois. ;)
 

Discussions similaires