Suppression des checkbox "true" d'une feuille

Bonjour,

J'ai créée une base de données fournisseurs, avec des macros associées à des boutons, me permettant d'ajouter et de supprimer des lignes.

A chaque création de ligne, je créée également une case à cocher liée à une case (permettant à l'utilisateur de sélectionner des fournisseurs et de lancer divers actions). Pas de problème jusqu'ici.

Concernant la macro permettant de supprimer les lignes cochées ("macro DeleteLine" dans le fichier joint), lorsque je supprime une ou des lignes, je souhaiterai également que la ou les case à cocher soient supprimée (jusqu'ici, quand je supprime une ligne, la case à cocher reste, et du coup je me retrouve avec des case à cocher qui se superposent les unes aux autres.

Jusqu'ici j'ai tenter la manipulation suivante :

1) supprimer les lignes relatives aux cases cochées (jusqu'ici ca marche)

2) supprimer toutes les cases cochées

Je n'arrive pas à trouver la fonction qui me permet de les selectionner puis de la supprimer. Voici la macro actuelle :

Sub DeleteLine()

Dim line As Integer
Dim CB As CheckBox

For line = 10 To Range("A2").Value - 1
If Range("B" & line).Value = True Then
Range("B" & line).EntireRow.Delete
Range("A2").Value = Range("A2").Value - 1
line = line - 1
End If
Next
For Each CB In ActiveSheet.CheckBoxes
If CB = True Then
CB.Select
Selection.Delete
End If
Next

End Sub

NB: Les cases à cocher sont des checkbox de type "formulaire" et non activex, je souhaiterai les conserver telles quelles. Je suis débutant en VBA, je travaille sous Excel 2016

Merci pour le temps que vous me consacrerez.

Bonjour,

utilise une colonne avec des x à la place.

Plus simple à gérer et surtout fichier plus stable. Excel n'aime pas trop avoir beaucoup d'objets (pour lui 10, parfois c'est beaucoup...) sur la feuille.

eric

eriiic a écrit :

Bonjour,

utilise une colonne avec des x à la place.

Plus simple à gérer et surtout fichier plus stable. Excel n'aime pas trop avoir beaucoup d'objets (pour lui 10, parfois c'est beaucoup...) sur la feuille.

eric

Bonjour Eriiic !

Dis moi, tu es très présent sur le Forum !

L'utilisation de ma feuille doit malheureusement etre très ergonomique (plus simple de cocher plusieurs destinateurs a la souris que rentrer 36 x)

Ce projet est entre autre développé dans le cadre d'un travail de fin d'études, et même si a terme je penserai sûrement aux " x " , j'aiumerai résoudre mon problème de Case à cocher .. :/

Merci par avance !

bonjour

et oui on peint avant de préparer les mur tes mal partie

a mettre dans ton onglet

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Not Intersect(Target, [B10:B200]) Is Nothing Then
     If Target = "þ" Then
      Target.Value = "o"
      Target.Font.Name = "Wingdings"
    Else
      Target.Value = "þ"
      Target.Font.Name = "Wingdings"
    End If
    Cancel = True
  End If
End Sub

comme ca tu peux après effacer tes lignes

Aller bonsoir

Maurice

Maurice,

Comme je l'ai dis je débute en VBA, cela fait à peine 1 semaine que j'apprends ... Mais grâce au forum et à ta réponse d'hier j'apprends de jour en jour !

Qu'entends tu par "ajoute cela à ton onglet" ? J'ai ouvert Visual basic, et ajouté ta macro à ma feuille "fournisseurs" pourtant rien de nouveau. :/

En clair : Quand j'appuie sur le bouton "Ajout contact" , une ligne i est ajoutée avec une Checkbox liée à la celulle [Bi]

Le bouton "supprime ligne" me permets de supprimer les ligne cochées (cela fonctionne). Cependant la ligne disparait mais pas le checkbox (tester sur le fichier). Je souhaiterai que lorsque j'appuie sur le bouton "Supprimer ligne", la macro "Deleteline", en plus de me supprimer la ligne cochée, supprime le messagebox.

Est-ce bien là le problème que tu avais comprit Maurice ? J'ai l'impression que t macro réponde à une autre problématique ...

Merci quand même. J'espère que quelqu'un trouveras une solution ....

Bonne soirée !

Dis moi, tu es très présent sur le Forum !

Très régulier oui. En longue maladie ça me permet d'entretenir la réflexion

archer à oublié de te préciser qu'un double-clic en B te met ou t'enlève une coche.

A mettre donc dans le module de la feuille concernée, adapte la colonne à ton fichier (ou l'inverse )

C'est très exactement ce que je j'allais te proposer.

Crois-moi, oublie tes cases à cocher, cette méthode est similaire et surtout stable pour le fichier

Tu seras deçu quand tu ne pourras plus en ajouter une sans qu'excel plante...

Tu peux même t'amuser à mettre une MFC pour avoir une coche verte et une croix rouge, ça sera encore plus beau que les cases à cocher

eric

Très bien, je viens de saisir ! Merci beaucoup, c'est parfait !

Cela amène deux questions. Les dernières promis !

1) Lorsque je double-clique, la valeur dans la case change bien, mais le caractère n'est pas visible.

Est-ce dû à la police utilisée ? L'utilisateur doit être en mesure de voir ce qu'il coche.

Le cas échéant, puis-je le remplacer par un autre caractère ? ou par exemple FALSE= case vide, TRUE= "ok" ?

Merci à vous trois !!!

If Not Intersect(Target, [B10:B200])....

tu essaies bien en B10:B200 ?

Sinon contrôle la couleur mise

eric

Oui ! Dans la barre de saisie en haut je vois que le caractère est predent, seulement je ne le voit pas... Ce doit être un problème de police. Demain j'essayerai sur un autre pc voir, et je testerai avec d'autres caractères !

Rechercher des sujets similaires à "suppression checkbox true feuille"