Réutilisation dans textbox d'une déclaration

Bonjour,

Pour faire de la cotation automatique j'ai créer un userform avec des checkbox,

ces checkbox renvoie une cotation dans un textbox si cochée ou non, et fait l'addition de plusieurs checkbox à chaque manipulation,

Private Sub CheckBox12_Click()
If CheckBox12 = True Then
TextBox14 = "3"
TextBox21 = CDbl(TextBox12) + CDbl(TextBox13) + CDbl(TextBox14) + CDbl(TextBox15) + CDbl(TextBox16) + CDbl(TextBox17) + CDbl(TextBox18) + CDbl(TextBox19) + CDbl(TextBox20)
Else
TextBox14 = "0"
TextBox21 = CDbl(TextBox12) + CDbl(TextBox13) + CDbl(TextBox14) + CDbl(TextBox15) + CDbl(TextBox16) + CDbl(TextBox17) + CDbl(TextBox18) + CDbl(TextBox19) + CDbl(TextBox20)
End If
End Sub

Private Sub CheckBox13_Click()
If CheckBox13 = True Then
TextBox15 = "5"
TextBox21 = CDbl(TextBox12) + CDbl(TextBox13) + CDbl(TextBox14) + CDbl(TextBox15) + CDbl(TextBox16) + CDbl(TextBox17) + CDbl(TextBox18) + CDbl(TextBox19) + CDbl(TextBox20)
Else
TextBox15 = "0"
TextBox21 = CDbl(TextBox12) + CDbl(TextBox13) + CDbl(TextBox14) + CDbl(TextBox15) + CDbl(TextBox16) + CDbl(TextBox17) + CDbl(TextBox18) + CDbl(TextBox19) + CDbl(TextBox20)
End If
End Sub

vu que beaucoup de checkbox au total je voudrais simplifier l'addition des checkbox en déclarent une seule fois l'addition textbox et réutiliser la déclaration a chaque fois

Private Sub CheckBox13_Click()

Add = CDbl(TextBox12) + CDbl(TextBox13) + CDbl(TextBox14) + CDbl(TextBox15) + CDbl(TextBox16) + CDbl(TextBox17) + CDbl(TextBox18) + CDbl(TextBox19) + CDbl(TextBox20)

If CheckBox13 = True Then
TextBox15 = "5"
TextBox21 = Add
Else
TextBox15 = "0"
TextBox21 = Add
End If
End Sub

Voici ce que j'ai essayer, mais je bloque.

comment utiliser "Add" dans plusieurs private sub sans le réécrire à chaque fois

Bonjour

Déjà un premier point est de ne pas utiliser ADD, c'est une instruction VBA excel. Choisissez plutot ADDITION par exemple ou RESULTAT

Cordialement

Bonjour DAN,

Merci pour l'info,

Private Sub CheckBox18_Click()
resultat = CDbl(TextBox12) + CDbl(TextBox13) + CDbl(TextBox14) + CDbl(TextBox15) + CDbl(TextBox16) + CDbl(TextBox17) + CDbl(TextBox18) + CDbl(TextBox19) + CDbl(TextBox20)
If CheckBox18 = True Then
TextBox20 = "5"
TextBox21 = resultat
Else
TextBox20 = "0"
TextBox21 = resultat
End If
End Sub

j'essaye pour une checkbox, et je me plante toujours quelque part, car mon addition n'est pas correct

Bonjour,

Bonjour Dan

Pour simplifier au maximum, l'utilisation d'un module de classe sera nécessaire...

Avec un fichier exemple, on pourra sûrement t'aider

Ok mais finalement voici ce que vous pouvez faire

1. dans votre userform changez les codes ce chaque checkbox comme ceci (exemple pour la checkbox12)

Private Sub CheckBox12_Click()
If CheckBox12 = True Then
    TextBox14 = "3"
Else
    TextBox14 = "0"
End If
Call Additionner
End Sub

2. Créez un module et coller le code ci-dessous

Sub Additionner()
With UserForm1
    .TextBox21 = CDbl(.TextBox12) + CDbl(.TextBox13) + CDbl(.TextBox14) ' .....
End With
End Sub

Edit : sinon comme dit Cousinhb29, que je salue ici

Déjà un grand merci pour votre aide,

Malgré vos explication je n'y arrive toujours pas

j'ai fait le test sur le sub checkbox18

2test-permis.xlsm (37.48 Ko)

Malgré vos explication je n'y arrive toujours pas

Ben votre macro checkbox12 n'est pas comme je vous ai écrit dans mon post point1.

Une fois fait vous devez répétez l'action point 1 de mon post pour chacune de vos macros Checkbox afin qu'elles aient toutes la même structure

Le code Additonner dans le module 2 est ok. Rien n'est à changer de ce coté

Merci beaucoup pour votre aide,

Pour mettre un mot sur ce que vous avez fait, et continuer mon apprentissage, appelle t-on "ça modules de classe?"

Bonne après midi.

Re-,

Pour répondre à ta dernière, il n'y a pas de module de classe dans la solution proposée par Dan

Regarde dans le fichier joint, avec un module de classe

1 action sur l'un des Chkbx (11 à 18) déclenche un seul code

Re

Pour mettre un mot sur ce que vous avez fait, et continuer mon apprentissage, appelle t-on "ça modules de classe?"

Voyez la réponse de Cousinhb29 qui vous donne la précision

En regardant l'userform, il y a un code Checkbox10 qui, je pense, pourrait intégrer la macro qui se trouve dans le module de classe. D'où N partirait de 10 au lieu de 11

Crdlt

Re-,

En regardant l'userform, il y a un code Checkbox10 qui, je pense, pourrait intégrer la macro qui se trouve dans le module de classe. D'où N partirait de 10 au lieu de 11.

Je dois reconnaître que j'ai un peu fait le fainéant...

Vraiment merci à tous les deux,

En effet cette deuxième proposition simplifie encore plus ce que j'ai fait, mais j'avoue que je ne comprend pas encore tout.

Me reste plus cas bouquiner pour comprendre maintenant.

Rechercher des sujets similaires à "reutilisation textbox declaration"