Afficher onglets par numéros de feuille

Résolu/Fermé
Nai Messages postés 711 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 août 2023 - 19 sept. 2014 à 17:00
Nai Messages postés 711 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 août 2023 - 20 sept. 2014 à 13:33
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 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 19/09/2014 à 17:45
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 711 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 août 2023 54
19 sept. 2014 à 18:54
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 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 20/09/2014 à 10:49
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 711 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 août 2023 54
20 sept. 2014 à 13:33
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