Programmer listview userform

Résolu/Fermé
coraliie.c Messages postés 22 Date d'inscription jeudi 27 novembre 2014 Statut Membre Dernière intervention 9 décembre 2014 - 8 déc. 2014 à 14:46
coraliie.c Messages postés 22 Date d'inscription jeudi 27 novembre 2014 Statut Membre Dernière intervention 9 décembre 2014 - 9 déc. 2014 à 09:40
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

A voir également:

3 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
9 déc. 2014 à 09:26
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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
9 déc. 2014 à 09:28
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 jeudi 27 novembre 2014 Statut Membre Dernière intervention 9 décembre 2014
9 déc. 2014 à 09:40
Merci beaucoup !

C'est exactement ce qu'il me fallait.
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
8 déc. 2014 à 15:33
Bonjour,

Voir ceci pour plus de détails:

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

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

Maurice
0
coraliie.c Messages postés 22 Date d'inscription jeudi 27 novembre 2014 Statut Membre Dernière intervention 9 décembre 2014
9 déc. 2014 à 08:30
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