bonjour a vous

j'aimerais laisser ce petit cadeau au débutant en vba. j'avoue que je peinais au début à trouver un code plus facile pour modifier des données d'une base de données via une listbox. je passais toute une journée le plus souvent devant mon clavier et sur les forums à la recherche de code . mais grace au conseil d'un modérateur de ce forum qui disait" mieux vaut étudier que de poster toujours". donc j'ai commencé à me former seul en téléchargeant les cours de ce forum et vraiment je suis passé de 0 à 5 sur 20.
voici comment modifier une base de données via une listbox( à adapter selon le bésoin)
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Private Sub UserForm_initialize()
'alimentation de la listbox
    Dim f
 
        Set f = Sheets("feuil1")
            ListBox1.ColumnCount = f.Columns.Count
            ListBox1.BoundColumn = f.Columns.Count
            ListBox1.List = Range("tableau1").Value
 
End Sub
 
Private Sub Bt_valider_Click()
Dim lig As Long
'valider les nouvelles données
    With Sheets("feuil1")
        .ListObjects(1).ListRows.Add
        lig = .Range("A" & Rows.Count).End(xlUp).Row
 
            If M1 <> "" Then
             .Range("A" & lig) = M1
             .Range("B" & lig) = M2
             .Range("C" & lig) = M3
            End If
        End With
        M1 = ""
        M2 = ""
        M3 = ""
 
        M1.SetFocus
 
         Dim f
'actualiser la listbox apres validation
        Set f = Sheets("feuil1")
            ListBox1.ColumnCount = f.Columns.Count
            ListBox1.BoundColumn = f.Columns.Count
            ListBox1.List = Range(f.[A1], f.[C500].End(xlUp)).Value
End Sub
 
 
Private Sub ListBox1_Click()
 'transfert des données dans les textbox
  With ListBox1
 
    M1 = .List(.ListIndex, 0)
    M2 = .List(.ListIndex, 1)
    M3 = .List(.ListIndex, 2)
  End With
 
End Sub
 
 
Private Sub Bt_modifier_Click()
    Dim i As Integer
 'modifier les anciennes données
    With Sheets("feuil1")
      'si entete alors i=listbox1.listindex+1
      'si pas entete alors i=listbox1.listindex+2
        i = ListBox1.ListIndex + 2
             .Range("A" & i) = M1
             .Range("B" & i) = M2
             .Range("C" & i) = M3
 
    'actualiser la listbox apres validation
        Set f = Sheets("feuil1")
            ListBox1.ColumnCount = f.Columns.Count
            ListBox1.BoundColumn = f.Columns.Count
            ListBox1.List = Range(f.[A1], f.[C500].End(xlUp)).Value
        End With
End Sub