Rendre invisible case à cocher selon condition

Bonjour à tous,

après plusieurs heures à chercher en vain sur différents forum la solution à mon problème, je me décide à vous la soumettre.

Je suis débutant en vba.

Dans une feuille Excel, je cherche à rendre visible une Case à cocher (Contrôle de formulaire) selon qu'une case est remplie ou vide.

Je souhaite que ma Case à cocher 1 soit visible seulement si la cellule C29 de ma feuille est remplie. Si la cellule est vide, je souhaite que la Case à cocher 1 n'apparaisse pas.

Je pense que c'est très simple pour quelqu'un qui maîtrise le vba.

Je n'ai pas de code à vous soumettre, tous ceux que j'ai trouvés à droite ou à gauche et adaptés ne fonctionnent pas.

J'espère avoir clairement énoncé ce que je souhaite faire.

Par avance, je vous remercie.

Bonjour blisstbg

Je souhaite que ma Case à cocher 1 soit visible seulement si la cellule C29 de ma feuille est remplie. Si la cellule est vide, je souhaite que la Case à cocher 1 n'apparaisse pas.

If Cells(29,3) <> ""  Then
   CheckBox1.Visible = True

 Else
   CheckBox1.Visible = False
End If

Voili voila

Bonne fin de journée

Bonjour,

Dans le module de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range("C29")) Is Nothing Then
    If IsEmpty(Range("C29")) Then
      Me.Shapes("Case à cocher 1").Visible = False
    Else
      Me.Shapes("Case à cocher 1").Visible = True
    End If
  End If
End Sub

EDIT : en décochant la case quand on la masque :

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range("C29")) Is Nothing Then
    If IsEmpty(Range("C29")) Then
      Me.Shapes("Case à cocher 1").Visible = False
      Me.Shapes("Case à cocher 1").ControlFormat.Value = xlOff  ' Décocher le chekbox
    Else
      Me.Shapes("Case à cocher 1").Visible = True
    End If
  End If
End Sub

Merci Patty5046,

malheureusement, cela ne fonctionne pas. Si j'efface le contenu de la cellule C29, la case reste tout de même visible.

Voilà maintenant le code:

Private Sub Worksheet_Change(ByVal Target As Range)

If Cells(29, 3) <> "" Then

CheckBox1.Visible = True

Else

CheckBox1.Visible = False

End If

End Sub

Pour info, j'ai copié collé la macro dans une feuille, et non dans un module. Cela fait-il une différence?

Est-ce que le code s'applique bien à une case à cocher contrôle de formulaire et non ActiveX? J'ai essayé avec les 2 cases au cas où, le résultat est le même.

Bonjour,

Dans le module de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range("C29")) Is Nothing Then
    If IsEmpty(Range("C29")) Then
      Me.Shapes("Case à cocher 1").Visible = False
    Else
      Me.Shapes("Case à cocher 1").Visible = True
    End If
  End If
End Sub

EDIT : en décochant la case quand on la masque :

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range("C29")) Is Nothing Then
    If IsEmpty(Range("C29")) Then
      Me.Shapes("Case à cocher 1").Visible = False
      Me.Shapes("Case à cocher 1").ControlFormat.Value = xlOff  ' Décocher le chekbox
    Else
      Me.Shapes("Case à cocher 1").Visible = True
    End If
  End If
End Sub

Merci Patrice,

malheureusement, ce code ne fonctionne pas non plus. Si j'efface le contenu de ma cellule C29, la case à cocher reste visible.

Bonjour Blisstbg,

En retour un fichier pour tester.

Bonne continuation.

35testblisstbg.xlsm (15.38 Ko)

Le fichier qui fonctionne :

127case.xlsm (15.20 Ko)

Le fichier qui fonctionne :

Case.xlsm

Patrice,

après avoir déplacé le code dans la bonne feuille, il fonctionne effectivement très bien. Je vous remercie!

Cordialement.

Bonjour le forum

Bonjour blisstbg, Patty, Patrice & X Cellus

Pour ma part, tout aussi simple de mise en oeuvre et beaucoup plus souple d'utilisation, j'aurais opté pour un contrôle Active X avec comme code :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 CheckBox1.Visible = IIf(Range("C29").Value <> "", True, False)
End Sub

@+ Ericcool02

Rechercher des sujets similaires à "rendre invisible case cocher condition"