Insertion lignes

Bonjour,

j'ai créé un questionnaire sur Excel de la forme présentée dans le fichier joint (trèèèès simplifié).

L'utilisateur répond à chaque question par oui ou non, non pas en cochant mais en mettant un "1" dans la case correspondante.

Suivant la question et la réponse, le mot "MONTANT" apparait dans une autre colonne. Par exemple, si("réponse à question 1 = oui") alors afficher "Montant", traduit par =SI(L21=1;"MONTANT";"").

Suivant certaines réponses/conditions, un code vba permet de masquer des lignes inutiles. J'utilise le code simple suivant pour chaque bloque de questions que je veux masquer :

Par exemple si la cellule M21 = 1 alors j'affiche les lignes 22 à 24 et sinon ça les masque :

If Cells(21, 13) = 1 Then 'Si j'indique 1 dans telle cellule, alors faire apparaître la ligne inférieure, sinon cacher la ligne inf.

Rows("22:24").EntireRow.Hidden = False

Else: Rows("22:24").EntireRow.Hidden = True

End If

Or ce questionnaire a environ 200 questions et est variable. J'ai donc énormément de bloc "if .... EntireRow.Hidden..." et mon problème principal est : si je dois insérer une question supplémentaire au milieu de mon bloc de questions, mon code ne va plus concerner les bonnes lignes, je dois modifier dans mon code à la main tous les numéros de lignes.

Avez vous une idée pour me simplifier la tâche?

En espérant m'être fait comprendre

Merci d'avance!

13test.xlsm (14.07 Ko)

Bonjour,

Dans l’exemple joint, j’ai utilisé des noms de plage (Q1_1, Q1_11, Q1_21 et Q1_31) pour repérer les cellules qui provoqueront le masquage ou affichage de lignes.

Cette disposition te permet de ne plus avoir le problème avec l’insertion de lignes.

Note bien que pour la procédure Masquer on utilise 2 arguments : Target.Offset(1) pour indiquer quelle est la première ligne à masquer et le nombre de lignes à masquer.

14test.xlsm (18.13 Ko)

A+

Merci beaucoup!!!!

Et du coup si j'ai des questions qui s'ajoute dans mes lignes à masquer je n'ai qu'à changer le 2ème argument de Target.Offset?

Encore merci

Et du coup si j'ai des questions qui s'ajoute dans mes lignes à masquer je n'ai qu'à changer le 2ème argument de Target.Offset ?

Exactement.

A+

Rechercher des sujets similaires à "insertion lignes"