Afficher onglets par numéros de feuille

Résolu
Nai Messages postés 714 Date d'inscription   Statut Membre Dernière intervention   -  
Nai Messages postés 714 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour tout le monde,

Je cherche à n'afficher que certains onglets d'un classeur.
Le problème, c'est que ces onglets sont renommés en fonction de cellule...
Mais je crois me souvenir qu'il est possible de nommer les feuilles en fonction de leur numéro...
Ainsi, mon code est, pour le moment :
Option Explicit
'--------
Sub Afficher_ateliers()
Dim Onglet(), Cptr As Byte, Idx As Byte

Onglet = Array("Accueil", "Accueil!B7", "Accueil!B8", "Accueil!B9", "Accueil!B10")
For Cptr = 1 To ThisWorkbook.Sheets.Count
On Error Resume Next
If Application.Match(Sheets(Cptr).Name, Onglet, 0) > 0 Then
If Err.Number > 0 Then
Sheets(Cptr).Visible = False
Else
Sheets(Cptr).Visible = True
End If
End If
On Error GoTo 0
Next
End Sub
Sauf que cela ne fonctionne pas, logique je pense.
Par contre, je me disais qu'avec un code comme ça :

Option Explicit
'--------
Sub Afficher_ateliers()
Dim Onglet(), Cptr As Byte, Idx As Byte

Onglet = Array("Feuil1", "Feuil2", "Feuil3", "Feuil4", "Feuil5", "Feuil6")
For Cptr = 1 To ThisWorkbook.Sheets.Count
On Error Resume Next
If Application.Match(Sheets(Cptr).Name, Onglet, 0) > 0 Then
If Err.Number > 0 Then
Sheets(Cptr).Visible = False
Else
Sheets(Cptr).Visible = True
End If
End If
On Error GoTo 0
Next
End Sub
ça pourrait marcher. Mais pas du tout... :/

Quelqu'un saurait comment n'afficher que les onglets définis par leur numéro ?
Merci de votre aide !

Fichier joint : https://www.cjoint.com/c/DItrcOEnEqA



A voir également:

4 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

je pense que c'est ce que vous voulez meme si vous parlez de nom et de numéro

fichier modifie: https://www.cjoint.com/?DItrSP5so5a

A+
1
Nai Messages postés 714 Date d'inscription   Statut Membre Dernière intervention   55
 
Bonsoir et merci !
Ça fonctionne (j'ai corrigé la faute dans le nom de la macro "réinitialiser" :p)
Par contre, je ne sais pas pourquoi ça fonctionne.

En bidouillant, j'ai trouvé comment n'afficher que les classes et la feuille Accueil avec :
For Cptr = 2 To 16
Mais je ne sais pas à quoi correspond ces chiffres :D
Pour que je le sache, peux-tu m'éclairer ?

Merci pour ta rapidité :D
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,


Mais je ne sais pas à quoi correspond ces chiffres

explication au plus simple:

si vous regardez dans l'explorer de projet du VBA, il y toutes les feuilles que vous avez crees de feuil1 a feuil26 et entre parenthèses le nom que vous leurs avez donnees "a","z" etc .....

quand vous ecrivez ceci:
x=Sheets(2).name
, x recupere le nom de la deuxieme feuille en partant de la gauche sur le fenetre excel pour vous c'est "a"

si vous ecrivez ceci:
Sheets(2).Visible=False
vous masquez cette meme feuille 2 ou "a" dans votre contexte. si vous deplacez une feuille elle prend le rang de la feuille qui etait a cette place et a ce moment la si vous voulez masquer des feuilles, il faut utiliser les noms de feuille au lieu des rangs car il y a decalage entre nom et rang
0
Nai Messages postés 714 Date d'inscription   Statut Membre Dernière intervention   55
 
x recupere le nom de la deuxieme feuille en partant de la gauche sur le fenetre excel

Merci !
Ça fonctionne, en effet, mais je pensais plutôt à des chiffres propres à chaque feuille, quel que soit sa place dans le document.
J'ai ajouté une dernière de statistiques, je sais comment la masquer du coup :p

Encore merci !
0