Bouton Selection/Deselection Checkboxes All Checkboxes - VBA

Bonjour, j'ai une feuille ou il y a autant de boutons checkboxes que de lignes (1 bouton associé à une ligne).

J'ai créé un bouton de sélection/déselection All.

J'aimerais que quand on sélection ce bouton "Selection/Deselection All" et qu'on a filtré les données, il sélectionne ou déselectionne toutes les lignes et UNIQUEMENT sur celles qui sont filtrées.

Voici mon code que j'ai :

For Each xCheckBox In Application.ActiveSheet.CheckBoxes
    If xCheckBox.Name <> Application.ActiveSheet.CheckBoxes(ActiveSheet.Name & "_01").Name Then
        xCheckBox.Value = Application.ActiveSheet.CheckBoxes(ActiveSheet.Name & "_01").Value
    End If
Next

Pouvez-vous m'aider ?

Merci bien.

SVP quelqu'un peut-il m'aider ?

Merci bien :)

Bonsoir Yoelto,

Pour avoir des réponses et comme il est indiqué dans la charte du forum, il est mieux de joindre un fichier

@+

Bonjour,

Ce n'est pas à proprement parler ce que j'appellerai une riche idée !

Dans cette situation on conseille habituellement d'utiliser des "pseudo CheckBox"

Autre possibilité :

A+

Bonjour, Merci pour vos réponses.

J'ai actuellement ça :

image

Je souhaiterais qu'à partir du moment où je sélectionne une ou plusieurs opérations, le bouton checkbox sur la même ligne que "REFERENCE GLOBE" se sélectionne automatiquement.

Inversement, si je désélectionne ce même bouton (à côté de la REFERENCE GLOBE), toutes les opérations sélectionnées en amont se désélectionneront.

Je ne souhaite que le faire par rapport au lignes filtrées !

Comment puis-je faire ?

Merci

Pouvez-vous m'aider ? Merci :)

T'aider à quoi ? à remplacer tes CheckBox par des pseudos CheckBox ?

Dans ce cas il faut un fichier joint : Une image est sans intérêt pour les questions sur VBA.

A+

J'ai ça comme code :

Sub Selectionner_All_Checkboxes()
    For p = 4 To DerniereLigne_Apres_Rafraichissement

            If Rows(p).Hidden = False Then

                If Cells(p, 29).Value <> "Vrai" Then

                    ActiveSheet.CheckBoxes(ActiveSheet.Name & "_CheckBox_" & p).Value = True

                End If

            End If

    Next

End Sub

Cela fonctionne mais j'aimerais pouvoir selectionner et deselectionner toutes les checkboxes ( si on fait un filtre sur une colonne, qu'il ne selectionne que les checkboxes visibles).

Merci

Quelqu'un peut m'aider ? svp.

Merci bien :)

Bonjour Yoelto,

Nous vous avons demandé de joindre un fichier, sans ça impossible de vous aider

Voici le fichier.

Le but est de pouvoir sélectionner/désélectionner toutes les opérations avec le bouton checkbox en cellule A3 et uniquement toutes les opérations après avoir fait un filtre sur mes données.

C'est a dire que si je filtre et que j'ai imaginons les lignes 5, 9, 12,13,14 si j'appuie sur le bouton en A3 ca va me sélectionner toutes les lignes 5,9,12,13,14 (boutons associés à ces lignes seront alors cochés) et uniquement celles ci. Pareil, si je désélectionne en A3, ca me désélectionne toutes ces lignes.

Merci bien

Re,

Perso quand dans le code je vois

Projet conçu et développé par Yoël XXX

Ingénieur Big DATA/Business Intelligence en double diplôme Finance Gestion des Risques Financiers

Et que je vois que vous n'avez pas suivi les recommandations de Galopin01, ca me laisse sans voix

Vous voulez rester sur des objets CheckBox sur votre feuille et avec lesquels on ne peut pas connaitre la ligne qui les contient (sauf erreur) nous ne pourrons donc plus à mon avis vous aider.

On peut connaître le numéro de ligne soit par le nom de la checkbox exemple : "Europe_Checkbox_7" qui correspond à la checkbox sur la ligne 7 de la feuille Europe.

C'est à dire que le bouton est lié à la cellule en colonne AC. Si on clique sur le bouton, la cellule en AC pour la ligne en question est "Vrai" et toute la ligne sera sélectionnée en jaune.

Voila

Re,

Alors quel est votre problème avec le code que vous nous avez donné

Sub Selectionner_All_Checkboxes()
  For p = 4 To DerniereLigne_Apres_Rafraichissement
    If Rows(p).Hidden = False Then
      If Cells(p, 29).Value <> "Vrai" Then
        ActiveSheet.CheckBoxes(ActiveSheet.Name & "_CheckBox_" & p).Value = True
      End If
    End If
  Next
End Sub

Sauf si votre variable "DerniereLigne_Apres_Rafraichissement" est à 0

@+

Mon code fonctionne pour la sélection de toutes les opérations filtrées/non filtrées.

En revanche j'aimerais pouvoir désélectionner toutes les opérations avec ce bouton en ligne A3 : C'est à dire que quand on a au moins une opération de sélectionnée, le bouton en A3 est coché et si je le décoche on a toutes les opérations qui sont désélectionnées.

Merci pour votre aide.

Re,

Il suffit d'utiliser le même code avec False au lieu de True

ActiveSheet.CheckBoxes(ActiveSheet.Name & "_CheckBox_" & p).Value = False

@+

Merci. Mais j'aimerais que dans la macro Selectionner_All_Checkboxes() cela traite la selection et la deselection de tous les checkbox...

Je n'arrive pas à mettre les deux cas dans ma macro...

Merci bien

Re,

Il faut créer une autre Sub, voici le code modifié

Sub Selection_Deselection_Checkboxes()
DerniereLigne_Apres_Rafraichissement = ActiveSheet.range("B" & Rows.count).End(XlUp).Row
  For p = 4 To DerniereLigne_Apres_Rafraichissement
    If Rows(p).Hidden = False Then
        ActiveSheet.CheckBoxes(ActiveSheet.Name & "_CheckBox_" & p).Value = Not   ActiveSheet.CheckBoxes(ActiveSheet.Name & "_CheckBox_" & p).Value
      End If
  Next
End Sub

@+

Merci. Et je peux attribuer 2 macros à mon bouton en cellule A3 dont le code est celui ci lors de sa creation ?

Sub Creation_Bouton_Case_A_Cocher()

    Dim cell As Range
    Dim i As Integer
    Dim j As Integer

    For Each cell In Range("A3:A3")
        With ActiveSheet.CheckBoxes.Add(cell.Left, cell.Top, cell.Width, cell.Height)
            '.LinkedCell = "AB" & i
            .Name = ActiveSheet.Name & "_01"
            .Caption = ""
            .OnAction = "Selectionner_Tous_les_Boutons_CheckBoxes"
        End With
    Next
...

Merci bien :)

Svp ?

Merci bien

Rechercher des sujets similaires à "bouton selection deselection checkboxes all vba"