Bonjour,

J'avance doucement mais surement dans le VBA. Je suis débutante et j'ai réussi à ajouter des données par Userform donc jusque là tout va bien. Maintenant Je cherche à faire un Userform ou je pourrais modifier une image à partir d'un Userform toujours Voilà le formulaire en question :

Nom : 2014-09-05_000001.png
Affichages : 2039
Taille : 10,5 Ko

Et voici que j'ai saisi jusqu'à présent.

Code vb : 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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
 
Option Explicit
 
 
Private Sub ComboBoxLine_Change()
        Dim Plage As Range
    Dim Tbl
    Dim i As Integer
    Dim tailleTableau As Integer
    Dim ligne_a_editer As Integer
 
 
    'crée un tableau contenant les noms des contrôles où récuperer les valeurs
    Tbl = Array("ComboBoxNom", "TextBoxNum", "TextBoxPage", "TextBoxDateS", "ComboBoxParu", "ComboBoxType", "TextBoxDAch", "TextBoxCodeBarre", "TextBoxCb")
 
    ' On recupere la taille du tableau
    tailleTableau = UBound(Tbl) + 1
 
 
    'défini la plage en feuille "BDD" adapter le nom...
    With Worksheets("BDD")
        'plage de A2 à Mx. Les cellules de la colonne M sont sensées être toutes renseignées
        Set Plage = .Range("A2", .Cells(.Rows.Count, tailleTableau).End(xlUp))
 
    End With
 
 
    'décale d'une ligne
    ligne_a_editer = CInt(ComboBoxLine.Value) - 1
 
 
    With Plage.Rows(ligne_a_editer)
 
        'boucle pour inscription des valeurs
        For i = 1 To tailleTableau
 
            Me.Controls(Tbl(i - 1)).Text = .Cells(1, i + 1).Value
 
 
        Next i
 
'      MODIFIER IMAGE ?????
 
    End With
 
End Sub
 
Private Sub CommandButton2_Click()
 
   blnCancel = True
   Me.Hide
 
End Sub
 
 
Private Sub CommandUpdateButton_Click()
        Dim Plage As Range
    Dim Tbl
    Dim Img
    Dim i As Integer
    Dim tailleTableau As Integer
    Dim ligne_a_editer As Integer
 
 
    'crée un tableau contenant les noms des contrôles où récuperer les valeurs
    Tbl = Array("ComboBoxNom", "TextBoxNum", "TextBoxPage", "TextBoxDateS", "ComboBoxParu", "ComboBoxType", "TextBoxDAch", "TextBoxCodeBarre", "TextBoxCb")
 
    ' On recupere la taille du tableau
    tailleTableau = UBound(Tbl) + 1
 
 
    'défini la plage en feuille "BDD" adapter le nom...
    With Worksheets("BDD")
        'plage de A2 à Mx. Les cellules de la colonne M sont sensées être toutes renseignées
        Set Plage = .Range(.Cells(2, 1), .Cells(.Rows.Count, tailleTableau).End(xlUp))
 
    End With
 
    ' On recupere le numero de la ligne de ComboBoxLine
    ligne_a_editer = CInt(ComboBoxLine.Value) - 1
 
 
    With Plage.Rows(ligne_a_editer)
 
        'boucle pour inscription des valeurs
        For i = 1 To tailleTableau
 
            .Cells(1, i + 1).Value = Me.Controls(Tbl(i - 1)).Text
 
 
        Next i
 
 
   blnCancel = False
   Me.Hide
 
End Sub
 
Private Sub UserForm_Initialize()
 
    Dim nombre_de_ligne As Integer
 
    Dim Tbl
    Dim Plage As Range
    Dim tailleTableau As Integer
    Dim i As Integer
 
 
    'crée un tableau contenant les noms des contrôles où récuperer les valeurs
    Tbl = Array("ComboBoxNom", "TextBoxNum", "TextBoxPage", "TextBoxDateS", "ComboBoxParu", "ComboBoxType", "TextBoxDAch", "TextBoxCodeBarre", "TextBoxCb")
 
    ' On recupere la taille du tableau
    tailleTableau = UBound(Tbl) + 1
 
 
    'défini la plage en feuille "BDD"
    With Worksheets("BDD")
        'plage de A2 à Mx. Les cellules de la colonne M sont sensées être toutes renseignées
        Set Plage = .Range("A2", .Cells(.Rows.Count, tailleTableau).End(xlUp))
    End With
 
 
    nombre_de_ligne = Plage.Rows.Count
    'MsgBox nombre_de_ligne
 
 
    With ComboBoxLine
 
        For i = 2 To nombre_de_ligne
            .AddItem (i + 1)
        Next
        .ListIndex = 0
 
    End With
 
 
 'Nom
 ComboBoxNom.RowSource = "INDEX!A2:A156"
 
 End Sub
 
 
Sub DoStuff()
UserFormEditElement.Show
If UserFormEditElement.blnCancel Then
   ' cancel button was pressed
Else
   ' OK button was pressed
End If
Unload UserFormEditElement
End Sub
 
Private Sub UserForm_Click()
 
End Sub


Ma question est comment je peux faire pour modifier l'image en cliquant sur "Modifier l'image", et supprimer l'ancienne.

Je vous remercie par avance