Programmer listview userform

Résolu
coraliie.c Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   -  
coraliie.c Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaite programmer un userform avec un Listview (qui reprendrait le tableau d'une de mes feuilles) que je pourrait trier.
Seulement je suis débutante en vba.

J'ai trouvé ce code en cherchant sur internet mais je ne sais pas comment l'adapter à mon tableau.

Est ce que quelqu'un pourrait m'indiquer les plages à changer ?

Voici le code :

Private Sub ListView1_Click()

With Me.ListView1
l = .SelectedItem.Index
TextBox1 = .ListItems(l).Text
For c = 1 To 10
Me("TextBox" & c + 1) = .ListItems(l).ListSubItems(c).Text
Next c
End With

End Sub

Private Sub UserForm_Initialize()
    ' Initialisation du listview
    With ListView1
        With .ColumnHeaders
            ' Vider le listview
            .Clear
    ' Id Client   Nom Prénom  Société Adresse Ville   CP  Adresse mail    Téléphone fixe  Téléphone portable  Fax
       
            'Ajouter les colonnes
            .Add , , "Id Client", 70
            .Add , , "Nom", 70
            .Add , , "Prénom", 70, lvwColumnRight
            .Add , , "Société", 70, lvwColumnCenter
            .Add , , "Adresse", 60, lvwColumnCenter
            .Add , , "Ville", 60, lvwColumnCenter
            .Add , , "CP", 50
            .Add , , "Adresse mail", 60, lvwColumnRight
            .Add , , "Téléphone fixe", 60, lvwColumnCenter
            .Add , , "Téléphone portable", 60, lvwColumnCenter
            .Add , , "Fax", 60, lvwColumnCenter
        End With
    
        .View = 3                   ' type Report
        .Gridlines = True           ' affichage de lignes
        .FullRowSelect = True       ' sélection complète de la ligne
        .HideColumnHeaders = False  ' afficher les en-têtes de colonnes
        .LabelEdit = 1              ' ne pas autoriser la saisie
    End With
IniListview
End Sub

Private Sub IniListview()

With Worksheets("Clients")
derl = .Range("A65536").End(xlUp).Row
Tbl = .Range("A2:K" & derl)
End With

    With ListView1
    For l = 1 To UBound(Tbl, 1)
    .ListItems.Add , , Tbl(l, 1)
    For c = 2 To UBound(Tbl, 2)
    .ListItems(.ListItems.Count).ListSubItems.Add , , Tbl(l, c)
    Next
    Next
    
    End With
    
End Sub


Merci pour votre aide

3 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
voici le code:

Private Sub UserForm_Initialize()
'Exemple 1 : Comment alimenter un Listview
 ' Initialisation du listview
    With ListView1
        With .ColumnHeaders
            ' Vider le listview
            .Clear
       
            'Ajouter les colonnes
            .Add , , "Nom", 80
            .Add , , "Prénom", 80
            .Add , , "Habilitation", 80
            .Add , , "Prochain Recyclage", 80
            End With
    
        .View = 3                   ' type Report
        .Gridlines = True           ' affichage de lignes
        .FullRowSelect = True       ' sélection complète de la ligne
        .HideColumnHeaders = False  ' afficher les en-têtes de colonnes
        .LabelEdit = 1              ' ne pas autoriser la saisie
    End With
IniListview

End Sub
Private Sub IniListview()

With Worksheets("Année")
derl = .Range("A65536").End(xlUp).Row
Tbl = .Range("A1:D" & derl)
End With

    With ListView1
    For L = 1 To UBound(Tbl, 1)
    .ListItems.Add , , Tbl(L, 1)
    For c = 2 To UBound(Tbl, 2)
    .ListItems(.ListItems.Count).ListSubItems.Add , , Tbl(L, c)
    Next
    Next
    
    End With
    
End Sub


3
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
c'est le même que tu as trouvé sur le net, il fallait juste adapter les données!
Remplacé clients par année et les colonnes "A1:D" & derl

Bon courage
0
coraliie.c Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup !

C'est exactement ce qu'il me fallait.
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Bonjour,

Voir ceci pour plus de détails:

https://silkyroad.developpez.com/VBA/ListView/
0
Maurice
 
Bonjour

Donne au moins un model pour voir ce que tu as fait

Maurice
0
coraliie.c Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Maurice

Voici mon fichier :

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

J'ai essayé de commencé à programmer l'userform2 mais j'avoue que je galère !
0