Modification contenu listview ou comment etendre la fonction formulaire Excel
Bonjour,
Excel possède la fonction formulaire, qui permet de naviguer modifier/créer les entrées dans un userform.
Malheureusement la fonction est limitée à un certain nombre de colonnes et c'est justement lorsqu'on a beaucoup de colonnes que la fonction est intéressante.
J'ai donc créé un userform deux colonnes, mais je n'arrive pas à modifier le contenu du listview
dans la doc de Silkyroad, on peut modifier par vba le contenu, mais je souhaite ecrire dans le listview
https://silkyroad.developpez.com/VBA/ListView/#LII-B
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
Private Sub UserForm_Initialize()
' je dimensionne mon tableau en fonction du nombre de colonne du titre
Colo = ActiveSheet.Range("A1").End(xlToRight).Column
maligne = ActiveCell.Row
Dim matable()
ReDim matable(Colo, 2)
For i = 1 To Colo
matable(i, 0) = ActiveSheet.Cells(1, i).Value
Next
For i = 1 To Colo
matable(i, 1) = ActiveSheet.Cells(maligne, i).Value
Next
ListBox1.List() = matable
End Sub |
J'ai fait une autre tentative avec une autre manière remplir mon userform
mais là seule la première colonne est modifiable
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
Private Sub UserForm_Initialize()
'Set Ws_Liste = ThisWorkbook.Sheets("Menu")
'----- remplissage ListView------------------------
With ListView1
'Définit le nombre de colonnes et Entêtes
With .ColumnHeaders
'Supprime les anciens entêtes
.Clear
'Ajoute 3 colonnes en spécifiant le nom de l'entête
'et la largeur des colonnes
.Add , , "Intervention", 500
.Add , , "Fréquence", 250
End With
.Gridlines = True
With ThisWorkbook.Sheets("162")
tblBD = .Range(Cells(2, 2), Cells(3, Range("XFD2").End(xlToLeft).Column)).Value
End With
Ligne = 0
For i = 1 To UBound(tblBD, 2)
Ligne = Ligne + 1
.ListItems.Add , , tblBD(1, i)
.ListItems(Ligne).ListSubItems.Add , , tblBD(2, i)
Next i
End With
ListView1.View = lvwReport
End Sub |
Mais il y a peut etre une fonction plus standard que je ne connais pas ?
merci de vos conseils
Denis