Mauvaise infos avec checkbox

Bonjour à tous,

J'ai un petit soucis avec vba sous excel.

J'ai créer une case à cocher sur la premiere page de mon fichier excel et je veux faire des actions dans le cas ou elle sois cocher.

J'ai l'impression que fonctionnement avec excel 2010 et les versions précédentes (au moins la 2003) ne sois pas la même.

Sub test()

If ThisWorkbook.Worksheets(1).CheckBoxes(1).Value = False Then

MsgBox ("faux")

End If

a = ThisWorkbook.Worksheets(1).CheckBoxes(1).Value

End Sub

Je voulais tester un peu le fonctionnement.

et il semblerait que le "false"/ "true" ne fonctionne pas.

Donc j'ai voulu savoir quelle était la valeur renvoyée par la checkbox.

Quand elle est cochée: a = 1

et quand elle n'est pas cochée a=-4146. WTF?

Est ce que cette valeur est normal? Est ce que true or false ne fonctionne plus sous 2010?

D'avance merci pour les réponses

cette un checkbox de contrôles formulaire ou activex ?

Dans le cas d'un formulaire votre checkbox est lié à une cellule et il vous pouvez faire le test sur cette cellule.

Je ne comprend pas trop ce que tu me demandes.

J'ai fait: développeur -> insérer -> case à cocher.

J'ai mis en pj le fichier de test que j'ai fait.

Et c'est la meme sur tout mes classeurs excel.

Excel 2010 Pro.

9classeur3.xlsm (16.98 Ko)

A tester

8test-tsubi.xlsm (18.27 Ko)

Merci.

Mais en fait ce n'est pas tout à fait ca mon problème et ma question, je me suis peut etre mal exprimé.

Pourquoi dans mon code, la valeur renvoyé quand non cochée est -4146 ?

Pourquoi dire "true" or "false" sur la valeur d'une checkbox ne marche pas sur vba 2010?

Tsubi a écrit :

Pourquoi dans mon code, la valeur renvoyé quand non cochée est -4146 ?

aucune idée, j'avoue ne jamais les avoir utilisés.

Ce que je vois en revanche c'est que vous avez utilisé un checkbox du contrôles de formulaire (entouré en rouge) et non un contrôles ActiveX (entouré en vert).

Avec un checkbox ActiveX votre code pourrait être celui-ci :

Sub test()
Dim a As Boolean
If ThisWorkbook.Worksheets(1).CheckBox1 = False Then
MsgBox "Faux"
Else
MsgBox "Vrai"
End If
a = ThisWorkbook.Worksheets(1).CheckBox1.Value
MsgBox "Variable a : " & a
End Sub
les controles

OK.

Merci pour l'aide.

J'ai pu me débrouiller autrement mais bon j'ai toujours pas la réponse au "-4146" on va laisser couler

Rechercher des sujets similaires à "mauvaise infos checkbox"