Problème affectation valeur cellule à une valeur du code de la macro

Bonjour à tous,

Voici le code de ma macro qui doit affecter à la cellule B1 la valeur de la somme de la cellule A2 lorsque je coche une case sur mon interface graphique.

Le code ne marche pas puisque rien en s'affiche dans la case B1...

Quelqu'un aurait la solution ?

Merciii

"

Public Sub CheckBox1_Click()

Dim valeur As Integer

If CheckBox1.Value = True Then

valeur = Workbooks("classeur1").Worksheets("feuil1").Range("A2").Value

Else

valeur = 0

End If

End Sub

Public Sub CommandButton1_Click()

Range("B1").Value = valeur

End Sub

"

Bonjour,

Tu alimentes ta variable "valeur" sur l'événement Click() de ta CheckBox mais tu affectes cette valeur (celle de la variable) à la cellule B1 sur l'événement Click() du CommandButton mais comme ta variable est déclarée dans la procédure Click() de la CheckBox, sa portée s'arrête une fois la procédure finie ! Il te faut la déclarer en tête de module afin que sa portée soit de niveau classeur donc, de cette façon :

Dim valeur As Integer '<--- déclarée en tête de module

Public Sub CheckBox1_Click()

If CheckBox1.Value = True Then
    valeur = Workbooks("classeur1").Worksheets("feuil1").Range("A2").Value
Else
    valeur = 0
End If

End Sub

Public Sub CommandButton1_Click()
    Range("B1").Value = valeur
End Sub

Un bon conseil quand on apprend à programmer en VBA, c'est d'obliger la déclaration explicite des variables pour ça, tu fais menu "Outils"--->"Options..." dans l'onglet "Editeur" cocher la case "Déclaration des variables obligatoire" ce qui rajoute "Option Explicit" en tête de tous les modules (il te faut d'abords fermer Excel puis le ré-ouvrir pour l'avoir de façon automatique)

Si ça avait été le cas, au click du bouton tu aurais eu un message d'erreur "Variable non définie" avec "valeur" surlignée ce qui t'aurais probablement mis la puce à l'oreille

Super merci beaucoup Theze

Rechercher des sujets similaires à "probleme affectation valeur code macro"