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
J'ai fait une autre tentative avec une autre manière remplir mon userform
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
mais là seule la première colonne est modifiable
Mais il y a peut etre une fonction plus standard que je ne connais pas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
merci de vos conseils
Denis
Partager