VBA Masquer des lignes variables

Vincepom

XLDnaute Nouveau
Salut,

N'étant pas expert de VBA, je vais essayé de vous expliquer mon problème.
J'ai un onglet comportant plusieurs tableaux les un à la suite des autres.
Afin de d'avoir une lecture moins polluée, j'ai un bouton par tableau qui affiche uniquement les lignes concernées.
Le problème est que la longueur des tableaux peuvent variés de nombres de ligne, si en rajoute ou en enlève.

Mon code actuel est :

Sub MacroNantes()
'Affiche toutes les lignes
Sheets("Véhicules").Select
Rows("1:1000").Select
SELECTION.EntireRow.Hidden = False
'Masque les lignes à partir de la 274 (car les autres sont inutiles sur ce cas)
Rows("274:1000").Select
SELECTION.EntireRow.Hidden = True

Range("A1").Select
End Sub

dans 2 cellules de l'onglet (avec la fonction EQUIV) j'ai réussi à determiner la ligne de début et la ligne de fin.
ces valeurs changent en fonction du rajout ou de la suppression de ligne.

Je voudrais que la valeur de ces cellules aillent dans la fonction "Rows" afin que je ne sois pas obligé de changer le code VBA tous les 4 matins dès qu'il y a une modif.


Merci de m'avoir lu, et Mille mercis pour vos réponses.

A+

Vince
 

Caillou

XLDnaute Impliqué
Re : VBA Masquer des lignes variables

Bonjour,

Dans Excel tu nommes chacune des 2 cellules contenant respectivement la ligne de début et la ligne de fin (par exemple LDEB et LFIN)

Tu modifies ta macro (VBA) comme suit :
Code:
Sub MacroNantes()
  Dim ldebut As Integer
  Dim lfin As Integer
  ldebut = Range("LDEB")
  lfin = Range("LFIN")
  
  'Affiche toutes les lignes
  Sheets("Véhicules").Select
  Rows("1:1000").Select
  Selection.EntireRow.Hidden = False
  'Masque les lignes
  Rows(ldebut & ":" & lfin).Select
  Selection.EntireRow.Hidden = True
  
  Range("A1").Select
End Sub

A plus

Caillou,
 

Discussions similaires