Supprimer Checkboxes

Bonjour,

J'ai inséré automatiquement des checkboxes en fonction d'une cellule :

     Dim Cellule As Range

For Each Cellule In Range("E1048576").End(xlUp)
  With Cellule
.Select
    ActiveSheet.CheckBoxes.Add(.Left, .Top, .Width, .Height).Select
  End With

1) Le problème étant maintenant que je n'arrive pas à les supprimer en fonction d'une macro.

En effet je ne peux pas coder cette fonction avec les nom des checkboxes (checkboxes1...)

Y'a t'il un contournement me permettant de supprimer les checkboxes dans certaines cellules ( à savoir dans ma variable)

2) J'aimerais mettre en surbrillance rouge et texte rouge toutes les cellules "NOK" de ma feuille et en vert les cellules "OK".

Les mises en formes conditionnelles ne marchent pas car j'ajoute et supprime des lignes... Une macro dans la feuille serait il possible ?

Je vous remercie

Ci joint le fichier.

Attention je commence sur VBA, donc mes codes sont très très Cracra... Ne vous moquez pas

38test-pour-forum.xlsm (144.84 Ko)

Bonjour,

Pour supprimer les cases à cocher de type contrôle de formulaire, il faut utiliser la collection "Shapes"

    For Each forme In ActiveSheet.Shapes
        If forme.FormControlType = xlCheckBox Then forme.Delete
    Next forme

Bonjour Thev,

Je te remercie pour ta réponse. En effet j'avais déjà essayé avec cette technique mais ça me supprime toutes les checkbox de la page.

Au contraire je voudrais supprimer uniquement les checkbox d'un emplacement, à savoir de la ligne choisis...

Bonsoir,

Dans ce cas, compléter le code comme suit :

   
    Dim forme As Shape

    ligne = 2
    For Each forme In ActiveSheet.Shapes
        If forme.FormControlType = xlCheckBox Then
            If forme.TopLeftCell.Row = ligne Then forme.Delete
        End If
    Next forme

Bonjour Thev !

Merci, mais une erreur 1004 sur " If forme.FormControlType = xlCheckBox Then"

Bonjour, Bonjour à tous,

Ton code est à expurger de tout Select (pour commencer), à indenter pour avoir un code lisible.

Ensuite il est en contradiction avec ton fichier, il place un contrôle entièrement sur la cellule, alors que ceux existants ne sont pas disposés ainsi.

D'autre part, ta boucle For Each est d'une inutilité patente, une seule cellule est visée à chaque exécution !

Et avec la méthode End, compte-tenu du contenu de ton fichier, cela ne visera jamais les cellules où tu en mets...

Bref, il faut d'abord faire des choix de ce que tu veux faire !!!

Ceci dit la méthode d'insertion, utilisant les vieilles collections des contrôles de formulaire, n'est pas sans intérêt pour opérer avec un code simple... Je conseillerais pour la création :

    With Cellule
        ActiveSheet.CheckBoxes.Add(.Left, .Top, .Width, .Height).Name = "chb" & .Address(False, False)
    End With

Dimensions et positionnement seront à revoir selon souhaits...

Cela élimine les Select plus que pénibles ( ) et tu donnes un nom qui facilitera une suppression ciblée...

Si tu mets un contrôle en E6, il se nommera : chbE6, aucune difficulté pour le retrouver à coup sûr.

Cordialement

NB- Réduis tes modules Standard à 1 (plus que suffisant !!) et oublie l'enregistreur pour faire du code avec un minimum de tenue !

bonjour,

Caarhartt a écrit :

Merci, mais une erreur 1004 sur " If forme.FormControlType = xlCheckBox Then"

C'est lié à ta version d'Excel. Soit la propriété "FormControlType" n'est pas reconnue, soit la constante " xlCheckBox " ne l'est pas, ou les deux. Tu peux toujours essayer de remplacer la constante " xlCheckBox par sa valeur (=1): If forme.FormControlType = 1

Rechercher des sujets similaires à "supprimer checkboxes"