|
|
|
|
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
Bonjour,
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+ L'expérience instruit plus sûrement que le conseil. (André Gide) Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius) |
Salut,
|
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. L'expérience instruit plus sûrement que le conseil. (André Gide) Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius) |