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
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...

NONO14

XLDnaute Impliqué
😎 Maintenant que les problèmes du UserForm de saisie du MdP sont résolus, je me permet une nouvelle digression.

VB:
'Initialisation de la date du début de la semaine en partant du lundi
    If Weekday(Now, 2) <> 1 Then
        Me.Tbx_DebSem = Format(Now - Weekday(Now + 2) + 1, "dd/mm/yyyy")
    Else
        Me.Tbx_DebSem = Format(Now, "dd/mm/yyyy")
    End If
 
    Me.Tbx_NumSem = WorksheetFunction.IsoWeekNum(Now)
    Me.Tbx_FinSem = CDate(Me.Tbx_DebSem) + 6
Pourquoi le lundi traite-t-on le premier jour de la semaine différemment ???
Aujourd'hui la macro me donne "04/10/2024" (qui est un vendredi) dans Me.Tbx_DebSem. Drôle de début de semaine. ;)

A toi de voir si tu veux utiliser ou non cette modification :
VB:
    ' Initialisation de la date du début de la semaine en partant du lundi
    Me.Tbx_DebSem = Format(Now - Weekday(Now, 2) + 1, "dd/mm/yyyy")
    ' On calcule la fin de la semaine
    Me.Tbx_FinSem = Format(Now - Weekday(Now, 2) + 7, "dd/mm/yyyy")
    ' On calcule le numéro ISO de la semaine
    Me.Tbx_NumSem = WorksheetFunction.IsoWeekNum(Now)
Ca me donne "07/10/2024" (qui est un lundi) dans Me.Tbx_DebSem.
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")
 

NONO14

XLDnaute Impliqué
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
🖖
Bonne soirée et à demain pour de nouvelles questions, j'espère qu'il n'y en aura pas trop et que je vais arriver à avancer seul.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 190
Messages
2 107 002
Membres
109 735
dernier inscrit
Mounskad