Combobox & Listbox

Bonjour

encore besoin de votre aide

Malgré tous mes efforts pour adapter les autres fichiers laissé sur vos messages, je n'arrive pas à faire ce que je veux

A l'affichage de l'userform Myriam, j'aimerai que les 10 derniéres ligne de l'onglet Myriam s'affichent (affichage de la colonne A à G)

Ensuite via le combobox1 , possibilité d'un tri par date sur l'onglet Myriam

Mon plus gros souci c'est que les heures s'affiche en chiffre à virgule et non en mode hh:mm:ss

Merci d'avance

Febfeb

19horaire-test.xlsm (28.24 Ko)

Bonjour,

Pour charger la ListBox et le ComboBox :

Private Sub UserForm_Initialize()

    Dim Dico As Object
    Dim Plage As Range
    Dim Cle
    Dim Tbl

    Heure_entree = Sheets(2).Cells(2, 3).Value
    Heure_Sortie = Sheets(2).Cells(2, 4).Value

    With ActiveSheet: Set Plage = .Range(.Cells(2, 1), .Cells(.Rows.Count, 7).End(xlUp)): End With

    Me.TextBox1.Value = "Le " & Sheets(2).Cells(2, 1).Value & " entre " & Int(24 * Heure_entree) & "h" & Int(60 * (24 * Heure_entree - Int(24 * Heure_entree))) & " et " & Int(24 * Heure_Sortie) & "h" & Int(60 * (24 * Heure_Sortie - Int(24 * Heure_Sortie)))

    Tbl = Plage

    Set Dico = CreateObject("Scripting.Dictionary")

    For I = 1 To UBound(Tbl, 1)

        Dico(Tbl(I, 1)) = "" 'dates

        Tbl(I, 3) = Format(Tbl(I, 3), "hh:mm:ss")
        Tbl(I, 4) = Format(Tbl(I, 4), "hh:mm:ss")
        Tbl(I, 5) = Format(Tbl(I, 5), "hh:mm:ss")
        Tbl(I, 6) = Format(Tbl(I, 6), "hh:mm:ss")
        Tbl(I, 7) = Format(Tbl(I, 7), "hh:mm:ss")

    Next I

    ListBox2.ColumnCount = 7
    ListBox2.List = Tbl

    'charge le combo avec les dates
    For Each Cle In Dico: ComboBox1.AddItem Cle: Next Cle

End Sub

Ensuite via le combobox1 , possibilité d'un tri par date sur l'onglet Myriam

Précises ce que tu veux car un tri est généralement croissant ou décroissant !

Bonjour

Merci Theze

c'est un tri croissant

Merci

la combobox ne trie pas auriez vous une solution ?

Merci

Je ne vois pas trop l'intérêt d'utiliser le ComboBox pour trier mais bon ?

Comme ta plage a des trous, il est préférable d'utiliser ceci pour définir la plage :

With ActiveSheet

    Set Plage = .Range(.Cells(2, 1), _
                .Cells(.Cells.Find("*", .[A1], -4123, , _
                1, 2).Row, .Cells.Find("*", .[A1], -4123, , _
                2, 2).Column))

End With

je re poste le code avec cette modif. En bas, le code pour le tri :

Private Sub UserForm_Initialize()

    Dim Dico As Object
    Dim Plage As Range
    Dim Cle
    Dim Tbl

    Heure_entree = Sheets(2).Cells(2, 3).Value
    Heure_Sortie = Sheets(2).Cells(2, 4).Value

    With ActiveSheet

        Set Plage = .Range(.Cells(2, 1), _
                    .Cells(.Cells.Find("*", .[A1], -4123, , _
                    1, 2).Row, .Cells.Find("*", .[A1], -4123, , _
                    2, 2).Column))

    End With

    Me.TextBox1.Value = "Le " & Sheets(2).Cells(2, 1).Value & " entre " & Int(24 * Heure_entree) & "h" & Int(60 * (24 * Heure_entree - Int(24 * Heure_entree))) & " et " & Int(24 * Heure_Sortie) & "h" & Int(60 * (24 * Heure_Sortie - Int(24 * Heure_Sortie)))

    Tbl = Plage

    Set Dico = CreateObject("Scripting.Dictionary")

    For i = 1 To UBound(Tbl, 1)

        Dico(Tbl(i, 1)) = "" 'dates

        Tbl(i, 3) = Format(Tbl(i, 3), "hh:mm:ss")
        Tbl(i, 4) = Format(Tbl(i, 4), "hh:mm:ss")
        Tbl(i, 5) = Format(Tbl(i, 5), "hh:mm:ss")
        Tbl(i, 6) = Format(Tbl(i, 6), "hh:mm:ss")
        Tbl(i, 7) = Format(Tbl(i, 7), "hh:mm:ss")

    Next i

    ListBox2.ColumnCount = 7
    ListBox2.List = Tbl

    'charge le combo avec les dates
    For Each Cle In Dico: ComboBox1.AddItem Cle: Next Cle

End Sub

Private Sub ComboBox1_Click()

    Dim Plage As Range

    With ActiveSheet

        Set Plage = .Range(.Cells(2, 1), _
                    .Cells(.Cells.Find("*", .[A1], -4123, , _
                    1, 2).Row, .Cells.Find("*", .[A1], -4123, , _
                    2, 2).Column))

    End With

    Plage.Sort Plage(1, 1), xlAscending

End Sub
Rechercher des sujets similaires à "combobox listbox"