Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

NONO14

XLDnaute Impliqué
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

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
C'était juste pour question de facilité, une fois les 7 caractères tapés, il n'y a plus qu'à cliquer sur Valider ou la touche Entrée du clavier.
J'avais bien compris, mais tu vois que maintenant ça ne sert plus à rien puisque quel que soit le nombre de caractères saisis la touche <Entrée> est équivalente au clic sur le bouton [Valider].


Bonne soirée
 

NONO14

XLDnaute Impliqué
J'ai bien recopié ton code et ça fonctionne bien mieux que mon code.
J'ai juste modifié le format date de ces deux lignes :
Encore un grand merci
VB:
' Initialisation de la date du début de la semaine en partant du lundi
    Me.Tbx_DebSem = Format(Now - Weekday(Now, 2) + 1, "dddd-dd-mm-yyyy")
    
    ' On calcule la fin de la semaine
    Me.Tbx_FinSem = Format(Now - Weekday(Now, 2) + 7, "dddd-dd-mm-yyyy")
 

TooFatBoy

XLDnaute Barbatruc
dddd-dd-mm-yyyy
Non mais franchement, POURQUOI ?!?
T'as déjà vu une date écrite comme ça ???

Quel est le but ?
C'est juste pour avoir le plaisir d'inventer une mise en forme non conventionnelle et personnelle ?

C'est comme l'histoire d'aller ajouter des majuscules au milieu d'une phrase qui avant était écrite en français parfaitement correct.


C'est n'imp !
 

NONO14

XLDnaute Impliqué
C'est juste pour voir le résultat de la proposition, il n'y a rien figé puisque je n'ai pas terminé. On me propose une idée alors par respect je l'essaye, ce n'est pas pour cela que je vais l'adopter définitivement.
 

Discussions similaires

Réponses
6
Affichages
548
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…