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