[macro] simplification

ediu

XLDnaute Nouveau
bonjour,

dans une de mes macros je souhaiterais que certaines feuilles soient masquées.
J'ai un classeur de 80 onglets environ et je trouve ma formule efficace mais pas très optimisée, surtout que je n'ai pas qu'une seule checkbox mais bien une dizaine auxquelles j'applique ce genre de commandes.

Feuil46.Visible = Not CBool(CheckBox1.Value)
Feuil47.Visible = Not CBool(CheckBox1.Value)
Feuil49.Visible = Not CBool(CheckBox1.Value)

Feuil50.Visible = Not CBool(CheckBox1.Value)
Feuil5.Visible = Not CBool(CheckBox1.Value)
Feuil51.Visible = Not CBool(CheckBox1.Value)
Feuil52.Visible = Not CBool(CheckBox1.Value)
Feuil54.Visible = Not CBool(CheckBox1.Value)
Feuil55.Visible = Not CBool(CheckBox1.Value)
Feuil56.Visible = Not CBool(CheckBox1.Value)

Existe - t il une façon d'optimiser ce code ?
Merci d'avance
ed
 

Gorfael

XLDnaute Barbatruc
Re : [macro] simplification

Salut ediu et le forum
sheets("Feuil" & x).Visible = Not CBool(CheckBox1)
Mais avec juste un extrait... sans compter que les numéros ne concernent peut-être que le nom informatique des feuilles et non les noms d'onglets.
A+
 

pierrejean

XLDnaute Barbatruc
Re : [macro] simplification

Bonjour a tous

une autre methode
Code:
 x=",46,47,49,50,5,51,52,54,56,"
for n=1 to sheets.count
  y=Replace(sheets(n).codeName ,"Feuil","")
  if instr(x,"," & y & ",")<>0 then sheets(n).visible=Not CBool(CheckBox1.Value) 
next n
 

ediu

XLDnaute Nouveau
Re : [macro] simplification

Merci pour vos réponses.
Poser des tags est un truc supplémentaire que j'aimerais bien éviter, j'ai déjà des tags partout
Merci pierrejean, j'aime bien cette simplification.

ed
 

Statistiques des forums

Discussions
312 489
Messages
2 088 854
Membres
103 975
dernier inscrit
denry