J'oubliais, la réponses à vos deux questions : en fait c'est deux questions mais qui apportent une seule réponse et celle-ci tient dans cette ligne de code (de la Macro) : If Not Intersect(Target, Range("B5:B11")) Is Nothing Then
En fait on a un test d'intersection de la cellule "double cliquée "Target" et une plage de cellule qu'on "surveille" ici B5:B11. Si la plage à surveiller s'agrandie il faudra modifier B5:B11 en B5:B17 (ici on rajoute 6 références), si la plage à surveillée est "découpée" en plusieurs parties, c'est tout aussi simple il faudra, les unes à la suite des autres, les définir, ce qui donnera Range("B5:B11,B14:B17,B20:B25")
Ici nous avons trois plage surveillées (pour la même chose évidemment) et si vous double cliquez en B13 il n'y aura aucune réaction au niveau du code. Pour l'affichage des lignes il en est (je crois) de même :
' ici on montre toutes les lignes de références
ActiveSheet.Range("5:11").EntireRow.Hidden = Hidden
deviendrait :
' ici on montre toutes les lignes de références
ActiveSheet.Range("5:11, 14:17,20:25").EntireRow.Hidden = Hidden
Tout comme pour le masquage :
' ici on cache toutes les lignes de références
ActiveSheet.Range("5:11, 14:17,20:25").EntireRow.Hidden = True
ActiveSheet.Cells(Target.Row, 2).EntireRow.Hidden = False
Mais là je n'ai pas pris le temps de tester...
vbMBHB