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
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+
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
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.