Bonjour à toutes et à tous,
Je vous remercie pour l'accueil et d'avance pour votre aide.
Etant grand débutant en vba et les outils liés à Excel je galère quelque peu à essayer d'implémenter le userform que je souhaite activer dans mon tableau excel.
Mon userform dispose de 20 textbox ainsi que de 12 checkbox.
Le but est double :
Je souhaite faire retenir les valeurs entrées dans chacune des textbox dans une cellule bien précise d'un feuillet (ex: textbox1 va dans cellule A1; textbox2 va dans celuule A2, etc.); ainsi que d'entrer une valeur correspondant au fait d'avoir ticker ou non les checkbox (checkbox1 est enregistré dans cellule B1, checkbox2 dans cellule B2, etc.). Par la suite chacune des valeurs rentrées resteront dans le userform. Pour cela la sauvegarde des valeurs entrées se fera via un bouton "save".
Pour une valeur donnée (une pour une textbox et une checkbox) j'ai rentré le code suivant qui fonctionne :
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 Private Sub CommandButton15_Click() If CheckBox1.Value = True Then Worksheets("sheet1").Range("C2") = "Check" Else Worksheets("sheet1").Range("C2") = "" End If Worksheets("sheet1").Range("A5").Value = TextBox2.Value End Sub Private Sub UserForm_Initialize() If Worksheets("sheet1").Range("C2") = "Check" Then CheckBox1.Value = True Else CheckBox1.Value = False End If TextBox2.Value = Worksheets("sheet1").Range("A5").Value End Sub
Pour toutes les autres checkbox et textbox, je peux faire de même, mais je me demandais si en utilisant une fonction for i = 1 to x on ne pourrait pas automatiser cela ?
un truc du genre:
Et par la suite faire son pendant pour que les valeurs soient enregistrés dans l userform même lors de l'ouverture.
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 Private Sub CommandButton15_Click() Dim i As Integer For i = 1 To 12 If CheckBox(i) = True Then Worksheets("sheet1").Range("C2" & i) = "Check" Else Worksheets("sheet1").Range("C2" & i) = "" End If i = i + 1 Next i Dim i As Integer For i = 1 To 20 Worksheets("sheet1").Range("A" & i).Value = TextBox(i).Value i = i+ 1 Next i End Sub
Cependant, je viens vers vous car malheureusement cela ne fonctionne pas.
Pourriez-vous svp me dire ce que je dois changer ou faire pour que cela fonctionne ?
Merci par avance et bonne journée à vous.
Cdt
A.
Partager