Aide pour code
Bonjour,
j'ai fait un code qui fonctionne, je voulais juste savoir s'il y avait pas un autre moyen de le faire
j'ai essayer une premiere fois avec 2 variable mais a mon avis je fait un truc de travers car cela me mettait des erreurs
Private Sub TextBox197_Change()
For x = 13 To 21
If TextBox197 = "A" Then
Me.Controls("CheckBox" & x) = False
CheckBox13 = True
ElseIf TextBox197 = "B" Then
Me.Controls("CheckBox" & x) = False
CheckBox14 = True
ElseIf TextBox197 = "C" Then
Me.Controls("CheckBox" & x) = False
CheckBox15 = True
ElseIf TextBox197 = "D" Then
Me.Controls("CheckBox" & x) = False
CheckBox16 = True
ElseIf TextBox197 = "E" Then
Me.Controls("CheckBox" & x) = False
CheckBox17 = True
ElseIf TextBox197 = "F" Then
Me.Controls("CheckBox" & x) = False
CheckBox18 = True
ElseIf TextBox197 = "G" Then
Me.Controls("CheckBox" & x) = False
CheckBox19 = True
ElseIf TextBox197 = "H" Then
Me.Controls("CheckBox" & x) = False
CheckBox20 = True
ElseIf TextBox197 = "I" Then
Me.Controls("CheckBox" & x) = False
CheckBox21 = True
End If
Next x
End Sub
et ensuite sur un bouton
Private Sub CommandButton7_Click()
For v = 215 To 251
Me.Controls("textbox" & v) = 0
If CheckBox13 = True Then
TextBox215 = TextBox25
TextBox224 = TextBox26
ElseIf CheckBox14 = True Then
TextBox216 = TextBox25
TextBox225 = TextBox26
ElseIf CheckBox15 = True Then
TextBox217 = TextBox25
TextBox226 = TextBox26
ElseIf CheckBox16 = True Then
TextBox218 = TextBox25
TextBox227 = TextBox26
ElseIf CheckBox17 = True Then
TextBox219 = TextBox25
TextBox228 = TextBox26
ElseIf CheckBox18 = True Then
TextBox220 = TextBox25
TextBox229 = TextBox26
ElseIf CheckBox19 = True Then
TextBox221 = TextBox25
TextBox230 = TextBox26
ElseIf CheckBox20 = True Then
TextBox234 = TextBox27
TextBox243 = TextBox28
ElseIf CheckBox21 = True Then
TextBox235 = TextBox27
TextBox244 = TextBox28
End If
merci de bien vouloir jeter un oeil, et merci au réponse
bonne journée
Bonjour,
optimisation de l'écriture du code. pas sur que ce soit plus rapide à l'exécution et que ce soit plus lisible.
de plus il semble manquer un bout de code pour la 2ème sub, pas sûr d'avoir compris ce que tu cherches à faire et donc de l'optimisation du code.
non testé !
Private Sub TextBox197_Change()
For x = 13 To 21
For i = 1 To 9
If TextBox197 = Chr$(i + 64) Then
Me.Controls("CheckBox" & x) = False
Me.Controls("CheckBox" & 12 + i) = True
Exit For
End If
Next i
Next x
End Sub
Private Sub CommandButton7_Click()
For v = 215 To 251
Me.Controls("textbox" & v) = 0
Next v
For i = 1 To 9
If Me.Controls("CheckBox" & 12 + i) = True Then
Me.Controls("TextBox" & 214 + i) = Me.Controls("TextBox" & 25 + IIf(i > 7, 2, 0))
Me.Controls("TextBox" & 223 + i) = Me.Controls("TextBox" & 26 + IIf(i > 7, 2, 0))
exit for
End If
Next i
End Sub
Je te remercie c est exactement ce qu il me fallait
Re bonjour,
puis je quand meme te poser une petite question... je travail sur le code, j essaye de tout assimilé
mais je me trouve devant une inconue
tu me mets :
Private Sub CommandButton7_Click() For v = 215 To 251 Me.Controls("textbox" & v) = 0 Next v For i = 1 To 9 If Me.Controls("CheckBox" & 12 + i) = True Then Me.Controls("TextBox" & 214 + i) = Me.Controls("TextBox" & 25 + IIf(i > 7, 2, 0)) Me.Controls("TextBox" & 223 + i) = Me.Controls("TextBox" & 26 + IIf(i > 7, 2, 0)) exit for End If Next i End Sub
mais que signifie les chiffres apres le IIF
+ IIf(i > 7, 2, 0))
et dans :
Private Sub TextBox197_Change()
For x = 13 To 21
For i = 1 To 9
If TextBox197 = Chr$(i + 64) Then
Me.Controls("CheckBox" & x) = False
Me.Controls("CheckBox" & 12 + i) = True
Exit For
End If
Next i
Next x
End Sub
que représente le 64
If TextBox197 = Chr$(i + 64) Then
car il prend bien tout en compte sur un txtbox,et je me suis dit q'eventuellement ca pouvait avoir un rapport je te remercie
mais que signifie les chiffres apres le IIF
+ IIf(i > 7, 2, 0))
Me.Controls("TextBox" & 214 + i) = Me.Controls("TextBox" & 25 + IIf(i > 7, 2, 0))
ceci signifie que si i est >7 il faut ajouter 2 sinon 0. dans ton code original lorsque tu testes le checkbox20 (12+i=8) tu copies le contenu de textbox27 (25+2) et non plus celui de textbox25 (25+0)
et dans :
Private Sub TextBox197_Change() For x = 13 To 21 For i = 1 To 9 If TextBox197 = Chr$(i + 64) Then Me.Controls("CheckBox" & x) = False Me.Controls("CheckBox" & 12 + i) = True Exit For End If Next i Next x End Sub
que représente le 64
If TextBox197 = Chr$(i + 64) Then
64 est la valeur qu'il faut ajouter à i pour avoir le code du caractère A, B, C, .. I (pour i allant de 1 à 9)
je te remercie pour ses explications tres tres bon travail et au moins j ai bien tout compris