Bonjour tout le monde,

Petit souci de code avec excel.
Voila le topo : dans une combobox, on choisit un code, puis dans un userform les textbox en placent reprennent les valeurs d'une base excel. Jusque là tout va bien puisque vous m'avez beaucoup aidé (création d'un boucle).

Mais je voudrais ensuite parvenir à réaliser une mise à jour de certaines textbox et créer un bouton "enregistrer".

C'est là que tout se complique pour moi. Quel est ce code pour que les nouvelles valeurs aillent correctement s'enregistrer dans les cellules correspondantes à la cellule ? Il faut une boucle, c'est certain, mais je bloque.

Voici le code que j'utilise déjà pour afficher les valeurs correspondantes à une combobox.

Merci de votre aide.


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
Private Sub CommandButton1_Click()
 
Dim C As Range
Dim Code As String
 
'Code: le contenu de TextBox1 qu'on va chercher sur la colonne A
Code = RechercheMAJ.ComboBox1.Value
'Si Code est non vide
If Code <> "" Then
'F1 sur la méthode Find (on cherche la valeur de Code dans la colonne A de notre feuille)
'c est la cellule de la colonne A contenant éventuellement la valeur du Code
    Set C = Worksheets("bdouvrages").Range("A:A").Find(Code, LookIn:=xlValues, lookat:=xlWhole)
    'Si une cellule est trouvé (contenant la valeur de Code) c sera différente de rien
    If Not C Is Nothing Then
        'On appelle la procédure de remplissage Remp des TextBox de Fiche en fonction de la ligne de la cellule trouvé (c.Row)
        Call Report(C.Row)
        'On vide notre variable objet (Range) c
        Set C = Nothing
    End If
End If
End Sub
 
'Procédure de remplissage des TextBox de Fiche en fonction de (Lig)ne
Private Sub Report(ByVal Lig As Long)
Dim I As Byte
 
With Worksheets("bdouvrages")
    MAJE0.TextBox1.Value = .Cells(Lig, 1).Value
    MAJE0.TextBox2.Value = .Cells(Lig, 2).Value
    'On boucle sur les textbox de 3 à 33
    For I = 3 To 33
        MAJE0.Controls("TextBox" & I).Value = .Cells(Lig, I)
    Next I
 
End With
'pour montrer la fiche
MAJE0.Show
 
End Sub