Condition If avec checkbox variables
Bonjour,
Je cherche à faire une boucle dans un Userform, dans lequel on cliques sur différentes Checkbox, chacune correspondant à un onglet à remplir avec le reste de la macro. Si les Checkbox ne sont pas cochées, l'onglet ne se remplira pas et il passera au suivant.
Je vous mets le code ci-dessous, il bloque à la ligne "If Me.Controls("Checkbox" & i).Value * -1 = True Then".
Je ne m'en sors pas, j'ai testé tout type de solution que j'ai pu trouver, mais mes connaissances en VBA sont très rudimentaires/empiriques.
Quelqu'un peut-il m'aider s'il vous plaît ?
Merci d'avance
Private Sub CommandButton1_Click()
Dim i As Integer 'Checkboxi 'Sheets(i-2)
Dim j As Integer
'i = 1
j = i + 2
For i = -1 To 28
If Me.Controls("Checkbox" & i).Value * -1 = True Then
Sheets(i).Select
Range("B8").Select
Do While ActiveCell.Offset <> ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell = TextBox1
ActiveCell.Offset(0, 1) = TextBox2
ActiveCell.Offset(0, 2) = TextBox3
ActiveCell.Offset(0, 3) = TextBox4
ActiveCell.Offset(0, 4) = TextBox5
ActiveCell.Offset(0, 5) = TextBox6
ActiveCell.Offset(0, 6) = TextBox7
ActiveCell.Offset(0, 7) = TextBox8
ActiveCell.Offset(0, 8) = TextBox9
ActiveCell.Offset(0, 9) = Now()
End If
Next i
Unload Me
End Sub
Bonjour,
le CheckBox-1 n'existe pas !
Correction du code :
Private Sub CommandButton1_Click()
Dim Worksheetdepart As Worksheet
'Boucle
Dim i As Integer 'Checkboxi 'Sheets(i-2)
Dim j As Integer
'i = 1
j = i + 2
For i = 1 To 29
If Me.Controls("Checkbox" & i).Value = True Then
'If .OLEObjects("Checkbox" & i).Value = True Then
Sheets(i + 1).Select
Range("B8").Select
Do While ActiveCell.Offset <> ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell = TextBox1
ActiveCell.Offset(0, 1) = TextBox2
ActiveCell.Offset(0, 2) = TextBox3
ActiveCell.Offset(0, 3) = TextBox4
ActiveCell.Offset(0, 4) = TextBox5
ActiveCell.Offset(0, 5) = TextBox6
ActiveCell.Offset(0, 6) = TextBox7
ActiveCell.Offset(0, 7) = TextBox8
ActiveCell.Offset(0, 8) = TextBox9
ActiveCell.Offset(0, 9) = Now()
End If
Next i
'cpt.Select 'permet de revenir à la page du récap, sinon ça
'Range("A1").Select 'laisse sur la dernière ligne d'ajout
Unload Me
End SubPourquoi sheets(i+1) ?
parce que i vaut 1 au premier tour et que la première feuille à modifier si le checkbox est vrai est le deuxième onglet du classeur : i=1 + 1 = 2
donc sheets(2) donc la feuille qui a pour nom "-1"
@ bientôt
LouReeD
Bonjour,
Tout d'abord merci beaucoup pour cette réponse rapide et efficace !
Ensuite, j'ai deux problèmes :
- j'avais fait en sorte que cela trie les contacts après qu'ils aient été ajouté, or cela ne le fait plus pour l'onglet "-1", sais-tu pourquoi s'il te plaît ? EDIT : j'ai trouvé !
- ensuite, y a-t-il une méthode simple pour retourner sur l'onglet sur lequel on était au moment de lancer la macro ? EDIT : idem
Merci d'avance !
Bonsoir,
merci @ vous pour vos remerciements, ainsi que pour la résolution des deux "problèmes"
@ bientôt
LouReeD