Création bouton (masquer afficher )

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Patrick.75019

XLDnaute Occasionnel
Bonjour à tous ,
*
Pourriez –vous m’aider s’il vous plait car j'ai regardé sur le forum et je n'ai rien trouvé que je sois en mesure d'adapter

J’ai un classeur avec 30 feuilles comportant des noms divers
*La 1ére se nomme*: Accueil_____La dernière visible 😀upont Perso (6)

Je voudrai faire un bouton _ Masquer , Afficher ou quelque chose de similaire qui me permettrait d’afficher ou de masquer des feuilles


>Masquer ou afficher les feuilles définies
Accueil
Dubois
Zaza (5)
Dupont Perso(6)
*
>Masquer afficher les autres feuilles non définies

>Et pouvoir réafficher l’ensemble feuilles définies et feuilles non définies, mais les feuilles préalablement masquées resteraient masquées
*
Merci et bonne journée
j'ai fait un fichier exemple avec 12 feuilles dont 2 préalablement masquées

Merci d'avance pour votre help



>>>>>>>Je joins un second fichier qui n'a rien à voir avec le premier.
"si quelqu'un pouvait me donner une explication "

Option Explicit

Sub AjoutFeuilles()
For i = 1 To 5
Sheets("Feuil1").Copy After:=Sheets(Sheets("Feuil1").Index + i - 1)
Sheets(Sheets("feuil1").Index + i).Name = "Feuil " & Format(i, "0")
Next
End Sub


je ne comprend pas pourquoi mes quelques lignes de code ne fonctionnent pas, message (variable i non définie) alors que sur un autre fichier, les mêmes lignes de code fonctionnent

merci et bonne fin de journée
 

Pièces jointes

Re : Création bouton (masquer afficher )

Bonjour,
je ne comprend pas pourquoi mes quelques lignes de code ne fonctionnent pas, message (variable i non définie) alors que sur un autre fichier, les mêmes lignes de code fonctionnent
Parce que tu as mis Option Explicit et il faut déclarer toutes les variables donc i :
Code:
 Option Explicit
 
 Sub AjoutFeuilles()
Dim i as integer
 For i = 1 To 5

Pour le reste il y a des fils sur le sujet (mais je ne les ai pas en tête)

Cordialement
 
Re : Création bouton (masquer afficher )

Bonjour à tous


UN exemple:
Code:
Sub masquer_demasquer()
Worksheets("Feuil2").Visible = Not Worksheets("Feuil2").Visible
Worksheets("Feuil3").Visible = Not Worksheets("Feuil3").Visible
End Sub

Masque ou démasque les feuille Feuil2 et Feuil3
 
Re : Création bouton (masquer afficher )

Bonjour,
Parce que tu as mis Option Explicit et il faut déclarer toutes les variables donc i :
Code:
 Option Explicit
 
 Sub AjoutFeuilles()
Dim i as integer
 For i = 1 To 5

Pour le reste il y a des fils sur le sujet (mais je ne les ai pas en tête)

Cordialement

merci ,car je viens de faire un grand pas dans la connaissance .....
 
Re : Création bouton (masquer afficher )

Bonjour à tous


UN exemple:
Code:
Sub masquer_demasquer()
Worksheets("Feuil2").Visible = Not Worksheets("Feuil2").Visible
Worksheets("Feuil3").Visible = Not Worksheets("Feuil3").Visible
End Sub

Masque ou démasque les feuille Feuil2 et Feuil3

merci de cette aide .

j'avais vu des posts qui correspondent à çà , mais, je ne comprend pas bien comment je pourrais mettre en application ce que je souhaite avec l'exemple ci dessus
 
Re : Création bouton (masquer afficher )

Re


Une version modifiée
Code:
Sub masque_demasque_II()
Dim tablo_feuilles As Variant
Dim i As Byte
'ici mettre le nom des feuilles à masquer
tablo_feuilles = Split("Feuil2,Feuil3", ",")
'masque ou démasque les feuilles
For i = 0 To UBound(tablo_feuilles)
Sheets(tablo_feuilles(i)).Visible = Not Sheets(tablo_feuilles(i)).Visible
Next i
End Sub

Avec ton exemple
tablo_feuilles = Split("Accueil,Dubois,Zaza (5),Dupont Perso(6)",",")
 
Dernière édition:
Re : Création bouton (masquer afficher )

Hello,

j'ai un petit souci , sur l'exemple le bouton fonctionne parfait mais

quand je transpose sur mon application ça ne va plus, j'ai une erreur d'execution 9
le message,
l'indice n'appartient pas à la sélection
(si c'est moi qui fait 1 erreur dans la recopie , j'arrive pas à voir ou?)

l'Arrêt se fait sur cette ligne
Sheets(tablo_feuilles(i)).Visible = Not Sheets(tablo_feuilles(i)).Visible

(j'ai recopié le nom des onglets par copier coller pour l'orthographe)

je ne sais pas si cela pourrait avoir une relation j'utilise excel 2007

quand ce petit souci sera réglé, il faudra donc que je fasse une seconde procédure inverse pour n'afficher que les feuilles "Accueil, dubois, zaza, dupont perso",",") et masquer les autres ??

Merci pour l'aide
 
Re : Création bouton (masquer afficher )

Re


Non, si tu lances la macro une première fois
les feuilles dont le nom est dans tablo_feuilles sont masquées

Tu relances la macro une deuxième fois
les feuilles précédemment masquées seront affichées de nouveau

Il faut que les noms dans tablo_feuilles soient les mêmes que ceux des feuilles dans le classeur.

(Dans ce cas préférer des noms sans espaces)

(PS: j'ai testé sous XL 2000 , pas de problème)
 
Re : Création bouton (masquer afficher )

Stapple 1600,

Tu avais raison , le problème venait très certainement de l'espace des noms dans les onglets de feuilles
j'y suis arrivé , non sans mal , j'ai renommé toutes les feuilles qui avaient un espace et celles qui avaient un nom composé ,j'ai mis un underscore entre .

j’ai certainement du mal formuler ma demande,mais comme je te disais ,il me semblait bien que j'étais obligé de créer une seconde macro, si je ne voulais afficher seulement que ces feuilles Accueil,Dubois,Zaza ,Dupont ,que je venais de (masquer _afficher) et masquer les autres

En gros, mon idée , c'était de pouvoir choisir entre 3 modes d'affichage avec 1 seule macro en l’executant 3 fois ou quelques chose de ce genre, mais ce ne doit pas être réalisable sinon tu l'aurais tenté.

Par exemple 30 >feuilles
1 fois avec toutes les feuilles _soit 30 feuilles
1 fois avec les noms masqués Accueil,Dubois,Zaza,Dupont soit >26 feuilles
1 fois fois avec les feuilles préalablement masquées soit >4 Feuilles
Mais c'est bon , je vais me débrouiller avec ce que tu m'as fait, je vais faire cette macro en inversant les feuilles des noms à masquer
Merci encore une fois et bonne fin de journée
@+
 
Re : Création bouton (masquer afficher )

Bonjour,

Je reviens sur la macro Masquer afficher ,
Stapple m’a indiqué comment faire pour masquer une liste définies de noms,
Dans mon application j’ai exactement 44 feuilles
8 feuilles_qui doivent rester masquer ou s’afficher que si j’en ai besoin (paramètres etc….)
Il reste donc 36 feuilles qui doivent être en permanence affichées
Je peux masquer ou afficher les 6 feuilles ,selon mes besoins, grace à l’aide de Staple
Il reste donc 30 feuilles
Je souhaiterai pouvoir réafficher les 36 feuilles et masquer les 30 Autres
Je précise mes feuilles sont renommées celles qui avaient ("1 nom composé avec 1 trait d’union) ,j’ai remplacé celui-ci par un underscore
Je pensais de façon logique ,pouvoir refaire une seconde macro identique à la première en définissant cette fois les 30 noms et pouvoir l’utiliser indifféremment ,mais depuis plusieurs heures, je copie et recopie les noms pour être sur de l’orthographe ,veille à la moindre virgule dans cette ligne

tablo_feuilles = Split("Robert,Guy, Christian ,»etc et cela jusqu’au 30ème noms »", ",")
l’execution se bloque ici
Sheets(tablo_feuilles(i)).Visible = Not Sheets(tablo_feuilles(i)).Visible

Je résume, si vous pouvez m'aider..
1/affichages des 36 feuilles
2/masquer les 30 feuilles et ne laisser que 6 feuilles définies
3/ masquer les 6 feuilles définies et n’afficher que les 30 autres feuilles
Si vous avez une idée ou une soluce , elle sera la bienvenue
merci🙂
 
Re : Création bouton (masquer afficher )

Bonjour



tablo_feuilles = Split("Robert,Guy, Christian ,»etc et cela jusqu’au 30ème noms »", ",")
Il ne faut aucun espace entre les noms des feuilles (ici séparés par des virgules)

EDITION: une autre solution
sub masque_desmasque()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Feuil1" And ws.Name <> "Feuil2" And ws.Name <> "Feuil3" Then
'ici au dessus mettre le nom des six feuilles devant rester visible
ws.Visible = Not ws.Visible
End If
Next ws
end sub

En lançant la macro une première fois toutes les feuilles dont le nom diffère des noms
mis dans le If seront masquées
Si tu relances la macro une deuxième fois
Ces feuilles seront affichées.
 
Dernière édition:
Re : Création bouton (masquer afficher )

Bonsoir , je rentre rapide dans le vif 🙂

Classeur 44 feuilles
je pars avec toutes les feuilles visibles (soit 36 feuilles) >8 masquées qui doivent le rester (paramètres etc…)
En lancant >1 fois (j’ai mis 6 noms de feuilles qui doivent rester visibles) 30 feuilles se masquent ( les 8 feuilles préalablement masquées se démasquent) ce qui me fait 14 feuilles de visibles alors que je ne devrais en avoir que 6


Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Feuil1" And ws.Name <> "Feuil2" And ws.Name <> "Feuil3" Then
'ici au dessus mettre le nom des six feuilles devant rester visible
ws.Visible = Not ws.Visible
End If
Next ws
End sub

En lancant 1 seconde fois les les 36 feuilles s’affichent à nouveau et les 8 feuilles qui s’étaient démasquées en lancant la 1ere fois se remasquent😡 .

Maintenant , Il me manque une opération que je puisse effectuer , c’est l’affichage uniquement des 30 feuilles , pour ce faire je suis donc obligé d’utiliser la 1ere macro que tu m’avais faites hier

Sub masque_demasque_II()
Dim tablo_feuilles As Variant
Dim tablo_feuilles As Variant
Dim i As Byte
tablo_feuilles = Split("Feuil2,Feuil3", ",") (mes 6 noms)
For i = 0 To UBound(tablo_feuilles
End Sub


par contre ça fait plus d’une 1 h que je reteste l’instruction
tablo_feuilles = Split("Feuil2,Feuil3,feuil30", ",")en faisant hyper gaffe à l’écriture ,espace etc…, je ne vois rien qui cloche , et pourtant ça ne fonctionne pas alors que ça fonctionne avec les 6 feuilles ?????
‘’je vais bien finir par trouver ‘’
juste une question j’ai mis les 30 noms sur 1 seule ligne, ce ne serait pas ça le pourquoi ??

Maintenant est-ce que tu comprends mieux pourquoi je te disais qu'il me fallait 2 macros ?
Moi, je pensais que l'on pouvait réaliser l'ensemble avec 1 seule

Je te remercie encore pour ton aide car c'est tout bête , mais ça n'a pas l'air évident.

Bonne fin de soirée à tous ou bonjour aux autres.....

@+
 
Re : Création bouton (masquer afficher )

Bonsoir ,

je l'ai fait avec toutes les feuilles renommées etc...

j'ai virer un max de code pour diminuer le fichier , mais ça ne va pas ,
il fait, avec pratiquement plus rien dedans 54K ° donc il rentre pas..

J'utilise office 2007 , je pense qu'un fichier doit peser plus lourd qu'avec 2003
il y a 44 feuilles

Si t'as une autre soluce ??

Demain le boulot donc pas de XLD

Bonne nuit et bonne journée

@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour