Checkbox pour effacer le contenu de lignes

Bonjour,

Je cherche à mettre en place un système de checkbox pour effacer des lignes.

Au départ j'étais partis sur l'idée de croix, mais la majorités des utilisateurs vont pas aimer.

Je n'arrive pas à trouver le système de fonctionnement pour que quand je sélectionne une ou plusieurs checkbox le contenu des lignes soit supprimé.

Effacer je sais le programmé mais c'est la combinaison avec checkbox qui me bloque

46fred-checkbox.zip (3.11 Ko)

Bonjour Fred35 le forum

bon j'ai fait les trois premières lignes, si cela te convient tu changes toutes tes cases de formulaires par des cases à cocher activex et il faudra rajouter un petit module de classe pour gérer toutes les checkboxs

a+

papou


re fred35 le forum

et cette version 2 c'est si tu veux utiliser le bouton supprimer

a+

papou

119fred35-v1.zip (13.90 Ko)
160fred35-v2.zip (13.39 Ko)

Merci Papou

C'est la version 2 que je souhaitai, parce qu'avec tous les maladroits, je préfère qu'il coche et clique sur un bouton que de cocher par inadvertance et supprimer ce qu'il ne faut pas ^^

Je vais donc me pencher sur ton code et continuer ce que tu as si bien commencé

Paritec a écrit :

il faudra rajouter un petit module de classe pour gérer toutes les checkboxs

Papou, je crois que tu 'm'aurais écris ça en chinois, que ça aurait à peut prêt été pareil

C'est tout neuf pour moi les checkbox, jamais utilisé, ni case à option etc...

En plus j'ai du faire une bétise, j'ai étiré les cellules pour créer les checkbox mais du coup ça marche plus

Possible de m'aiguiller sur l'erreur que j'ai pu commettre ?

Bonjour,

Une version sans changer les CheckBox et sans classe

A+

Je venais de toutes les changer lol

Merci lermite, j'aime bien cette solution qui à l'air plus simple pour mon petit niveau.

On peut décocher les cases une fois la suppression effectuée ?

Re Fred35 le forum

oui moi aussi je l'avais fait comme cela, mais il faut écrire dans les cellules de la colonne A

et je ne suis pas sur que ce soit bien ce que tu veux

@ Lermitte Pour la classe c’était dans le cas de la suppression par ligne comme la version 1,car si il rajoute 100 cases à cocher !!!!!!

si utilisation du bouton aucun besoin, je m'en serait douté sans avoir à te le demander!!!

bonne journée

a+

papou

Papou, tu dis si bouton, pas besoin de classe, ce qui m'arrange vu que j'ai tout changé en checkbox du formulaire de contrôle.

Mais pourquoi la suppression de mes lignes ne fonctionnent plus ?

Fred35 a écrit :

On peut décocher les cases une fois la suppression effectuée ?

Oui, mais pas facile, Excel râle sur cette fonction mais y a toujours une solution même si elle est un peu plus compliquée.

A+

Edit: Si quelqu'un trouve une solution plus simple pour décocher.. qui se gène pas.. ( où y a de la gène y a pas de plaisir )

J'ai bien pensé à une chose, mais ça ne fonctionne pas lol

Range("A4:A26").Replace What:="VRAI", Replacement:="FAUX", LookAt:=xlPart, _
   SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
   ReplaceFormat:=False

L'idée serai de remplacer les valeurs "VRAI" de la cellule par "FAUX"

Ça fonctionnerait dans l'absolu (les lignes ne seraient pas effacées) mais pas dans le visuel, les CheckBox serait toujours cochés.

Bonjour

A tester

Option Explicit

Private Sub CommandButton1_Click()
Dim Lig As Integer
Dim Sh As CheckBox

    Application.ScreenUpdating = False
    For Lig = 4 To 26
        If Cells(Lig, 1) Then
            Range("C" & Lig & ":N" & Lig).ClearContents
        End If
    Next Lig
    With ActiveSheet
      For Each Sh In .CheckBoxes
        Sh = False
      Next Sh
    End With
End Sub

Salut Banzaï,

Nickel..

A+

lermite a écrit :

Ça fonctionnerait dans l'absolu (les lignes ne seraient pas effacées) mais pas dans le visuel, les CheckBox serait toujours cochés.

Une idée de débutant ^^

Avec le code de Banzai chez moi ça ne fonctionne pas

EDIT autant pour moi, ç'est juste parfait

J'avais fait une erreur de module... je crois qu'une pause s'impose...

Bonjour

Juste une petite remarque la solution proposée par Fred35 fonctionne (légères modifications) et les CheckBox sont décochés

  Range("A4:A26").Replace What:=True, Replacement:=False, LookAt:=xlWhole, _
              SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
              ReplaceFormat:=False

Compris pour True et False, sa semble même presque logique

pour xlWhole comprend pas trop pouquoi.

Lookat prend xlwole ou xlPart, si je ne me trompe pas xlwhole pour rechercher une valeur exact et xlpart pour rechercher une valeur dans les cellules.

Alors pourquoi ça ne peut pas marcher avec xlpart ?

Bonjour

Si bien sur cela fonctionne avec xlPart, mais dans ce cas là ce n'est pas nécessaire, on peut rechercher sur la totalité du contenu de la cellule

Merci pour l'info

Si Papou repasse par là, je suis également preneur de ta solution, vu que j'ai bloqué en l'adaptant je voudrais savoir ou je me suis planté.

Bonjour,

Dans le code de Banzai ci-dessous j'aimerai rajouter un message de confirmation de type

"Attention, opération irréversible souhaitez vous réellement supprimer :

liste des infos colonne B cochés" OUI / NON

Je pensais faire un truc du genre, mais j'arrive pas à le placer et de plus ça ne m'affichera pas la liste des éléments cochés

If MsgBox("Opération irréversible. souhaitez vous réellement supprimer?", vbQuestion + vbYesNo, "QUESTION ...") = vbYes Then
Option Explicit

Private Sub CommandButton1_Click()
Dim Lig As Integer
Dim Sh As CheckBox

    Application.ScreenUpdating = False
    For Lig = 4 To 26
        If Cells(Lig, 1) Then
            Range("C" & Lig & ":N" & Lig).ClearContents
        End If
    Next Lig
    With ActiveSheet
      For Each Sh In .CheckBoxes
        Sh = False
      Next Sh
    End With
End Sub

Si quelqu'un a une idée ?

Bonjour

A tester

Option Explicit

Private Sub CommandButton1_Click()
Dim Lig As Integer
Dim Sh As CheckBox
Dim Msg As String

  For Lig = 4 To 26
    If Cells(Lig, 1) Then
      Msg = Msg & vbCr & Range("B" & Lig)
    End If
  Next Lig

  If Len(Msg) = 0 Then Exit Sub
  Msg = "Opération irréversible. souhaitez vous réellement supprimer ces infos ? " & Msg
  If MsgBox(Msg, vbQuestion + vbYesNo, "QUESTION ...") = vbYes Then

    Application.ScreenUpdating = False
    For Lig = 4 To 26
      If Cells(Lig, 1) Then
        Range("C" & Lig & ":N" & Lig).ClearContents
      End If
    Next Lig
  End If

  With ActiveSheet
    For Each Sh In .CheckBoxes
      Sh = False
    Next Sh
  End With
End Sub
Rechercher des sujets similaires à "checkbox effacer contenu lignes"