Bonjour le forum,
J'ai un petit problème pour modifier la ligne sélectionnée d'une listview via des Textbox.
Je m'explique, j'ai une base de donnée de 9 Colonnes sur un nombre de ligne indéfini se situant sur une feuille de mon classeur. J'ai besoin d'une Listview pour rendre plus clair la lecture et la modification de ma base de données.
Ayant 9 Colonnes dans mon classeur, j' ai donc 9 Colonnes dans la Listview. et 9 Textbox dans mon userform pour modifier les données. Elles se nomme Textbox 1 à 9.
Lorsque je clic sur une ligne j'arrive a alimenter mes Textbox pour les modifier, mais le problème est comme dit plus haut je n'arrive pas à renvoyer celle ci dans ma Listview et dans ma BD
Pour importer les données j'utilise:
et
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 Private Sub UserForm_initialize() Dim NBentree As Integer NBentree = Sheets("Recettes - Dépenses").Cells(65535, 3).End(xlUp).Row Call Remplir_Combobox With Listview1 .View = lvwReport .FullRowSelect = True .Gridlines = True .ColumnHeaders.Add , , Cells(2, 1), 50 .ColumnHeaders.Add , , Cells(2, 2), 50 .ColumnHeaders.Add , , Cells(2, 3), 50 .ColumnHeaders.Add , , Cells(2, 4), 150 .ColumnHeaders.Add , , Cells(2, 5), 50 .ColumnHeaders.Add , , Cells(2, 6), 300 .ColumnHeaders.Add , , Cells(2, 7), 50 .ColumnHeaders.Add , , Cells(2, 8), 50 .ColumnHeaders.Add , , Cells(2, 9), 50 End With End Sub
Pour rapatrier la ligne selectionnée j'utilise :
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
32
33
34 Sub Remplir_Combobox() Dim SourceSheet Dim Liste_Niv1, Dico_01 As Variant Dim Cellule, Nblg As Integer Set SourceSheet = ActiveWorkbook.Sheets("Recettes - Dépenses") Set Dico_01 = CreateObject("scripting.dictionary") Dico_01.RemoveAll Nblg = SourceSheet.Cells(65535, 3).End(xlUp).Row On Error Resume Next For Cellule = 3 To Nblg Dico_01.Add SourceSheet.Cells(Cellule, 4).Value, 0 Next Cellule On Error GoTo 0 Liste_Niv1 = Dico_01.keys With ComboBox1 .Clear .AddItem "TOUS" For Cellule = 0 To UBound(Liste_Niv1) If Liste_Niv1(Cellule) <> "" Then .AddItem Liste_Niv1(Cellule) Next Cellule End With ComboBox1.Text = "TOUS" Set SourceSheet = Nothing Set Dico_01 = Nothing End Sub
Pour exporter les données, j'ai essayé avec un bout de code trouvé sur le net qui est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Private Sub Listview1_ItemClick(ByVal Item As MSComctlLib.ListItem) Dim Cellule As Integer For Cellule = 1 To 9 Step 1 If Cellule = 1 Then Me.Controls("TextBox" & Cellule).Text = Listview1.ListItems(Item.Index).Text Else Me.Controls("TextBox" & Cellule).Text = Listview1.ListItems(Item.Index).ListSubItems(Cellule - 1).Text End If Next Cellule End Sub
et la plus rien!!! Pourriez vous m'aider?
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 Private Sub CommandButton3_Click() With Sheets("Recettes - Dépenses") For i = 1 To 10 .Cells(Ligne, i) = Controls("TextBox" & i + 1) Next End With With ListView1 .ListItems.Item(Idx) = TextBox2 For i = 1 To 9 .ListItems(Idx).SubItems(i) = Controls("TextBox" & i + 2) Next End With For j = 1 To 9 Controls("TextBox" & j) = "" Next End Sub
Récapitulatif:
- Créer une Listview dans un Userform -> OK
- Créer un Filtre pour filtrer les données de la Listview -> OK
- Importer la Ligne sélectionner dans des textbox pour modifier celle ci -> OK
- Renvoyer les Données Modifier ou en ajouter dans la Listview et ma BD ->
Merci d'avance
Partager