Indépendance d'un macro par rapport au n° de ligne

Mi_

XLDnaute Occasionnel
Bonjour le forum,

Pour afficher ou escamoter certaines lignes dans une feuille, j'utilise

Sub AfficherMasquerLignes31_34()
Select Case Range('E84')
Case 1
Rows('31:34').EntireRow.Hidden = True
Case 2
Rows('31:34').EntireRow.Hidden = False
End Select
End Sub

Donc j'actionne sur la cellule E84 (avec un menu déroulant par exemple), dont la valeur 1 ou 2 affiche ou masque les lignes 31:34.

Bon.

Le problème: lorsque je travaille sur la feuille, je peux insérer ou supprimer des lignes (autres que celles que je veux escamoter). Cela affecte finalement l'index de toutes les lignes de la feuille, donc les lignes 31:34 ne seront plus les mêmes qu'avant. Et c'est embêttant de toujours régler manuellement les chiffres des lignes dans le macro, à chaque insertion ou surpression d'une ligne pour des causes diverses.

Et la question: existe-t-il une altérnative à mon macro actuel, qui prendrait comme répère la première cellule (colonne A) de la ligne, que je vais dénommer spécifiquement (Toto1, Toto2, Toto3), et lorsque je change la valeur de la cellule E84 (qui va avoir assigné son nom propre aussi), j'obtient l'affichage/escamotages des lignes dont la première cellule s'appelle Toto1, Toto2 et Toto3, n'importe le nombre réel de la ligne ?

Je vous remercie pour tout idée,
Mi
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Mi, bonjour le forum,

Tu pourrais nommer la cellue A31 ('debut' par exemple) et ta cellule E84': 'Ref'. ta macro deviendrait :


Sub AfficherMasquerLignes31_34()
Select Case Range('Ref')
Case 1
Range(Range('début'), Range('début').Offset(3, 0)).EntireRow.Hidden = True
Case 2
Range(Range('début'), Range('début').Offset(3, 0)).EntireRow.Hidden = False
End Select
End Sub

Message édité par: Robert, à: 21/10/2005 17:29
 

Discussions similaires

Statistiques des forums

Discussions
312 335
Messages
2 087 386
Membres
103 530
dernier inscrit
dieubrice