Macro Afficher/masquer lignes SI
Bonjour à tous,
Comme depuis le début, je reviens vers vous, chers experts excel, quand mes recherches internet n'ont rien donnés.
Je suis en train de concevoir un questionnaire, qui devra servir de questionnaire de base commun à plusieurs questionnaires. En gros, il s'agit d'un "master questionnaire", qui regroupe plusieurs questionnaires, et qui se présente comme un "accordéon". Il faut sélectionner les différents questionnaires que l'ont veut remplir sur la page de garde, et ils s'affichent/se masquent en fonction de ce qui est coché ou pas dans le questionnaire principal.
Or, j'ai un petit soucis technique que je vous soumets:
Il me faudrait une macro (sur une case à cocher) qui affiche ou cache des lignes selon une double condition:
1ere condition (logique!): La case est cochée/non cochée (l'utilisateur sélectionne le questionnaire ou le déselectionne)
2ème condition: La ligne qui s'affiche correspond bien au questionnaire Y (cellule E4="Y") (il s'agit ici d'identifier les lignes du questionnaire en question...)
Je ne sais pas si c'est clair...
Je sais que je peux intégrer en dur un code, en sélectionnant une à une les lignes en question.... J'avais fait comme ça jusqu'à maintenant. Mais au moindre ajout de ligne dans le questionnaire (ce qui arrive souvent, avec les révisions des différents questionnaires), il fallait réactualiser TOUTES les cellules codés... La 2ème condition permettrait d'automatiser un peu plus l'identification.
Enfin, last but not least: Je ne peux pas utiliser d'ActiveX, une partie des utilisateurs utilisant des macs (et ma solution de leur faire changer de parc d'ordinateur n'a pas été retenue
Merci d'avance de votre aide.
Je reste ici pour guetter vos réponses et vous apporter des rensegnements complémentaires le cas échéant.
Bonsoir,
Comme c'est plus simple avec le document sous les yeux, je vous envoie un fichier test avec une tentative:
Je voudrais que les lignes soient masquées/démasqués en fonction du cochage décochage de la checkbox en I1 (Cette checkboxe est liée à H1 [VRAI ou FAUX]), et que les lignes qui soient masquées soient identifiée par le contenu de la colonne A (dans notre exemple, Masquer/démasquer les lignes où A2:A1000= tl.
Mon code actuelle est comme ceci:
Sub test()
Dim cel As Range
For Each cel In Range("A1:A1000")
If Range("H1") = True Then
If cel = "tl" Then
cel.EntireRow.Hidden = True
Else
cel.EntireRow.Hidden = False
End If
End If
Next
End SubCe code est au niveau de la feuille, mais aussi de la checkboxe. Il marche bien pour masquer, mais pas pour démasquer...
J'espère que c'est plus clair et que vous pourrez m'aider...
Merci d'avance!
Bonjour à tous! (Promis, c'est mon dernier message...)
J'ai trouvé une formule qui marche parfaitement! Je vos la transmets:
Sub Caseàcocher1_Clic()
Dim cel As Range
For Each cel In Range("A1:A1000")
If Range("H1") = False And cel = "tl" Then
cel.EntireRow.Hidden = True
Else
cel.EntireRow.Hidden = False
End If
Next
End SubCette macro, associée à une case à cocher, permet d'afficher les lignes "TL" si cochée et de les masquer si décoché.
Par contre, il me reste une ULTIME difficultée (moins grande que ma demande initiale):
La checkbox qu'il faudra cocher se trouvera sur une page d'accueil, sur une autre feuille que le questionnaire donc. Mon code marche si la checkbox est dans la même page... D'où ma question:
Que changer dans ma formule pour qu'elle puisse marcher d'une page à l'autre (checkbox dans feuille1 et lignes à masquer dans feuille2)? En gros, comment adapter ma formule.
En espérant que vous pourrez m'aider,
Bien cordialement.