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
A voir également:

4 réponses

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
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
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
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
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
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
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
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