Supprimer des cases a cocher en fonction de leur etat vrai/faux

bonjour à tous

Je suis nouveau sur ce forum fort intéressant et très enrichissant. Voilà j'ai un petit problème pour réaliser une macro. Malgré pas mal de recherche sur le net, je n'ai trouvé aucunes solution a mon problème fort simple.

J'aimerai pouvoir par le biais d'une macro, supprimer sur la page active, seulement les cases à cocher vide "false" . j'arrive a toutes les supprimer ou selon une cellule mais j'ai rien trouvé pour les supprimer en fonction de leur état.

merci d'avance.

Bonjour,

Quel code utilisez-vous ? A mettre entre balises </>

Le plus simple est de mettre un fichier non confidentiel en ligne.

bonjour

mon idée est de mettre en forme un code comme suit:

Si checkbox = false alors supprime

j'utilise actuellement ce code pour supprimer toutes les cases a cocher d'une feuille.

Sub EffaceMentShapeChamp()
For Each s In ActiveSheet.Shapes
If Not Intersect(s.TopLeftCell, Range("$r$32:$ab$46")) Is Nothing Then
s.Delete
End If
Next s
End Sub

Edit Modo : mis code entre balises.

Pouvez-vous mettre un fichier en ligne ?

Salut à tous,

Quel est le but de supprimer une case à cocher ? après faut tout se retaper pour les recréer ?

Worksheets("Test").Shapes.Range("MyCheckBox").Delete devrait faire le travail

A tester :

Sub EffaceMentShapeChampV2()

Dim I As Integer
Dim AireCheckbox As Range
Dim Sh As Worksheet

    Set Sh = ActiveSheet
    Set AireCheckbox = Sh.Range("$R$32:$AB$46")

    With Sh
         If .OLEObjects.Count > 0 Then
            For I = .OLEObjects.Count To 1 Step -1
                With .OLEObjects(I)
                     If Not Intersect(.TopLeftCell, AireCheckbox) Is Nothing Then
                        If .progID = "Forms.CheckBox.1" Then
                           If .Object.Value = False Then .Delete
                        End If
                      End If
                End With
            Next I
         End If

         If .Shapes.Count > 0 Then
            For I = .Shapes.Count To 1 Step -1
                With .Shapes(I)
                     If Not Intersect(.TopLeftCell, AireCheckbox) Is Nothing Then
                        Select Case .Type
                               Case 8
                                    If .OLEFormat.Object.Value = -4146 Then .Delete
                        End Select
                   End If
                End With
            Next I
         End If

    End With

    Set AireCheckbox = Nothing
    Set Sh = Nothing

End Sub

bonjour jean paul

C'est un fichier de gestion des heures. j'enregistre a chaque fois ce ou ces "formulaires" dans une nouvelle feuille du même fichier chaque mois. En plus je crée une copie du même formulaire dans un fichier différent a chaque fois le tout par macros dans un but de "double sauvegarde". Donc a chaque nouvelle feuille crée qui devient "statique", je nettoie un maximum d'éléments qui deviennent inutile et prennent vite de la place.

voilà la raison.

merci eric ça fonctionne parfaitement. Par contre la macro que tu propose comporte une solution pour les "boutons formulaire" et "bouton activex" c'est bien ça.

Oui, c'est exact. Je t'avais demandé un fichier, c'était pour cette raison. Je suppose que tu n'as pas les deux types sur ton fichier, supprime la partie inutilisée.

Salut le fil,

Ok je comprends mieux maintenant, je suis vieux il faut me répéter plusieurs fois.

Bon je suppose que tu fais des copie des feuilles complètes, si c'est le cas le code d'Eric devrait convenir, sinon une autre solution consisterait à ne copier que les données d'une feuille.

Bonne prog.

Bonjour…

Il fut un temps où, embêté par les cases à cocher (de 2 types sur une feuille et lourdes à gérer), j’ai choisi d’utiliser de fausses cases de cette espèce.

Plus qu’un long discours, je donne un ancien exemple retravaillé (présence du mot Tableau donc importance de ceux dits structurés).

merci Eric. oui j'ai des cases à cocher de type formulaire.

Rechercher des sujets similaires à "supprimer cases cocher fonction leur etat vrai faux"