Case à cocher - MACRO

Bonjour,

Je voudrais affecter la macro suivante à une case à cocher :

  • Si case cochée alors aucune action sur cellule A1
  • SI case décochée alors cellule A1 = 0

Merci pour votre aide.

Bonjour nicodak,

Voilà.

1'070caseacocher.xlsm (18.01 Ko)

Bonjour funkyfoenky,

Cela correspond à ce que je cherchais à une différence près (par ma faute, je n'ai pas assez précisé ma demande) : Il y a une valeur X dans la case A1, je voudrais que si je décoche la case alors A1 = 0 mais que si je recoche la case alors A1 = X.

Le code que vous avez écrit ne permet pas de revenir à la valeur initiale si on recoche la case.

Private Sub CheckBox1_Click()
If CheckBox1.Value = False Then Cells(1, 1).Value = 0

End Sub

Merci

J'essaie de modifier le code pour que la valeur revienne à l'original si on recoche la case mais je n'y parviens pas, auriez-vous la solution ?

Voici ce que j'essaie :

Private Sub CheckBox1_Click()
If CheckBox1.Value = False Then Cells(1, 1).Value = 0
If CheckBox1.Value = True Then Cells(1, 1).Value = A1

End Sub

la valeur de A1 se trouve aussi a un autre endroit du fichier donc on peut l'appeler, mais comment ?

Merci

Je m'auto-réponds mais c'est pas grave

J'ai trouvé ça si la valeur est dans une autre cellule

If CheckBox1.Value = False Then Cells(1, 1).Value = 0
If CheckBox1.Value = True Then Cells(1, 1).Value = Cells(1, 4)

Cela fonctionne parfaitement.

Par contre si la valeur est dans un autre onglet quel est la syntaxe ? Merci de votre aide

Bonjour,

Essayez ceci peut-être, si valeur en A1 même onglet :

Private Sub CheckBox1_Click()
Static A1 As Variant
    If Cells(1, 1).Value <> 0 Then A1 = Cells(1, 1).Value
    If CheckBox1.Value = False Then
        Cells(1, 1).Value = 0
    Else
        Cells(1, 1).Value = A1
    End If
End Sub

Si valeur dans un autre onglet, en G18 :

Private Sub CheckBox1_Click()
    If CheckBox1.Value = False Then
        Cells(1, 1).Value = 0
    Else
        Cells(1, 1).Value = Sheets("Feuil2").Range("G18").Value
    End If
End Sub

Merci,

J'ai modifié votre code pour l'adapter à mon classeur :

'
' CAC_RUSTIQUE Macro
'
Private Sub CAC_rustique()
    If CheckBox1.Value = False Then
        Cells(29, 7).Value = 0
    Else
        Cells(29, 7).Value = Sheets("DATAX").Range("N2").Value
    End If
End Sub

si je coche la case, j'ai une erreur : Erreur d'exécution 424 - Objet requis

Bon j'ai essayé mille choses, je ne parviens à rien faire..........

Est-ce que cette valeur doit changer pour chaque case ? CheckBox1. si oui comment connaitre la valeur de chaque case ?

le nom de la macro doit-il être obligatoirement cette valeur ?

Quelle différence entre Sub nom_macro() et Private Sub nom_macro() ? Lequel faut-il choisir ?

Doit-on passer par Format de contrôle obligatoirement avant l'affectation de la macro ? Si oui faut il choisir à ce moment là la cellule qui est en relation avec la case ou alors c'est dans le code VBA qu'il faut le dire ?

Je ne comprends rien

Bon en fait c'est tout simple ! No need macro !!

On passe par Format de contrôle tout simplement. On choisit une cellule liée, n'importe laquelle, disons A1. on valide et dans cette case il y aura écrit VRAI

Dans la cellule, disons E4, que je veux modifier en cochant/décochant la case je tape ma formule SI(A1=VRAI;G8;0) ou G8 détient la valeur que je veux afficher. Je suis trop content d'avoir réussi ce petit truc de rien du tout !

Désolé Franck et Funky j'avais sûrement mal formulé ma demande, vous ne pouviez répondre correctement.

Rechercher des sujets similaires à "case cocher macro"