Si checkbox non cocher, masquer la ligne

MRpaul -  
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,
j'aurai besoin d'un petit coup de main pour VBA excel. J'ai créé une feuille contenant au début de chaques lignes une case à cocher (sur 120 lignes). Mon but est, lorsque je clique sur un bouton ok, de créer une boucle qui lit chaque checkbox (associer à une ligne). Si la case n'est pas cocher alors la ligne est masquée et Next. Pour cela j'ai essayer d'utiliser for each checkbox in ....
Je sais que ce petit programme peut tenir en quelques lignes mais pas de solution probante.
Si vous avez quelques indices merci
bonne journée

4 réponses

  1. MRpaul
     
    Salut,
    j'ai mis ton code dans le bouton approprié puis j'ai renommé les 120 cellules mais lorsque que je clique sur le bouton rien ne se passe. ma premiere checkbox est en "A6" puis "A7"....
    De plus j'ai souhaite créer un second bouton pour réinitialiser toutes les lignes masquer...
    Merci pour ton aide
    0
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Sorry, j'ai confondu avec un UF, voila le code pour une feuille...

    Private Sub CommandButton1_Click()
    Dim Obj As OLEObject
    Dim Lig1 as integer
    Lig1 = 6
        'boucle sur les objets de la Feuil1
        For Each Obj In Sheets("Feuil1").OLEObjects
            'verifie s'il s'agit d'un CheckBox
            If TypeOf Obj.Object Is MSForms.CheckBox Then
                If Obj.Object.Value = False Then
                   Obj.Object.visible = False
                   N = Val(Right(Obj.Name, 3)) + Lig1
                   Rows(N).Hidden = True
                End If
            End If
        Next Obj
    End Sub

    Tu dit...
    A+
    Une chose m'interpelle quand même...
    j'ai renommé les 120 cellules
    ???
    C'est pas les cellules qui faut renommer mais les checkbox.
    0
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    et pouquoi t'embéter avec des cases à cocher ?
    Un simple x dans une colonne et tu ajoutes un filtre automatique sur la ligne de titres.

    eric
    -1
    1. MRpaul
       
      je fais un tableau de bord pour une entreprise donc j'ai besoin d'une présentation clair. cocher permettrai de selectionner des affaires en cours et d'enlever celles qui ne sont pas visées pour avoir un tableau propre et eviter de saisir des données dans une mauvaise ligne...
      0
  4. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Essaye avec...
    Dabord une petite modification dans les noms des CheckBox
    En commencant par les premier... CheckBox001.. CheckBox002... CheckBox010.. CheckBox099.. CheckBox100 etc..

    Private Sub CommandButton1_Click() 
    Dim Cont As Control
    Dim Lig1 as integer
    Dim N as integer
        Lig1=4 ' ajuster à la première ligne du premier CheckBox   
        For Each Cont In Me.Controls
            If TypeOf Cont Is MSForms.CheckBox Then
                if Cont.Value = False then
                   N = Val(Right(Cont.Name, 3)) + Lig1
                   Rows(N).visible = False
                End if
            End If
        Next Cont
    End Sub

    A mettre dans le module de la feuille concernée.
    A+
    -1