Si checkbox non cocher, masquer la ligne
MRpaul
-
lermite222 Messages postés 9042 Statut Contributeur -
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
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
-
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 -
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. -
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 -
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+