XL 2019 Problème de mise à jour de la ListView

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Raoul AGONGBE

XLDnaute Nouveau
Bonjour le forum.
Dans l'intention de mettre à jour ma ListView1 (UserForm 1, page "Source") avec mes commandes d'ajout, de modification, de suppression etc..., j'ai fait appel à la fonction Show data in listview au niveau de chacune de ces commandes mais après exécution, les données sont répétées au niveau de la listview mais s'exécute au niveau du sheet. Prière œuvrer vos expériences en ma faveur.
Merci

Fichier joint.
 

Pièces jointes

j'ai fait appel à la fonction Show data in listview au niveau de chacune de ces commandes mais après exécution, les données sont répétées au niveau de la listview mais s'exécute au niveau du sheet.
Cette fonction (d'ailleurs pourquoi est-ce une fonction ???) est plutôt mal foutue :
- elle ne tient pas compte du fait que tu utilises un Tableau Structuré,
- elle oublie de vider la ListView, donc forcément ça s'ajoute à chaque appel de la fonction.

Ajoute la ligne .ListItems.Clear
juste après la ligne With ListView1
dans la fonction show_data_in_listView_CATEGORIE


[edit]
Je viens de constater qu'il y a aussi un problème au niveau des colonnes qui s'ajoutent à chaque appel de la fonction...
Donc ajoute aussi la ligne .ColumnHeaders.Clear
juste après la ligne .ListItems.Clear
dans la fonction show_data_in_listView_CATEGORIE
[/edit]

VB:
Function show_data_in_listView_CATEGORIE()
'
Dim r As Integer, c As Integer
Dim LastRow As Long
Dim li As Object

    ThisWorkbook.Sheets("CATEGORIES").Activate
    LastRow = Sheets("CATEGORIES").Cells(Rows.Count, 1).End(xlUp).Row
    With ListView1
        .ListItems.Clear
        .ColumnHeaders.Clear
        .View = lvwReport
        .CheckBoxes = False
        .FullRowSelect = True
        .Gridlines = True
        For c = 1 To 2
            With .ColumnHeaders
                .Add , , Sheets("CATEGORIES").Cells(1, c), Sheets("CATEGORIES").Cells(1, c).Width
            End With
        Next c
        For r = 2 To LastRow
            Set li = .ListItems.Add(, , Cells(r, 1))
            For c = 2 To 2
                li.ListSubItems.Add , , Cells(r, c)
            Next c
        Next r
    End With

End Function
 
Dernière édition:
Cette fonction (d'ailleurs pourquoi est-ce une fonction ???) est plutôt mal foutue :
- elle ne tient pas compte du fait que tu utilises un Tableau Structuré,
- elle oublie de vider la ListView, donc forcément ça s'ajoute à chaque appel de la fonction.

Ajoute la ligne .ListItems.Clear
juste après la ligne With ListView1
dans la fonction show_data_in_listView_CATEGORIE


[edit]
Je viens de constater qu'il y a aussi un problème au niveau des colonnes qui s'ajoutent à chaque appel de la fonction...
Donc ajoute aussi la ligne .ColumnHeaders.Clear
juste après la ligne .ListItems.Clear
dans la fonction show_data_in_listView_CATEGORIE
[/edit]

VB:
Function show_data_in_listView_CATEGORIE()
'
Dim r As Integer, c As Integer
Dim LastRow As Long
Dim li As Object

    ThisWorkbook.Sheets("CATEGORIES").Activate
    LastRow = Sheets("CATEGORIES").Cells(Rows.Count, 1).End(xlUp).Row
    With ListView1
        .ListItems.Clear
        .ColumnHeaders.Clear
        .View = lvwReport
        .CheckBoxes = False
        .FullRowSelect = True
        .Gridlines = True
        For c = 1 To 2
            With .ColumnHeaders
                .Add , , Sheets("CATEGORIES").Cells(1, c), Sheets("CATEGORIES").Cells(1, c).Width
            End With
        Next c
        For r = 2 To LastRow
            Set li = .ListItems.Add(, , Cells(r, 1))
            For c = 2 To 2
                li.ListSubItems.Add , , Cells(r, c)
            Next c
        Next r
    End With

End Function
Parfait, satisfaction reçue
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
2 K
Retour