Macro pour choisir d'afficher/Masquer des onglets

Bonjour tout le monde,

Etant très novice dans l'utilisation de macros Excel, je fais appel à votre aide. Vous trouverez en PJ le fichier sur lequel je travaille et où j'ai pu récupérer à droite/à gauche des macros, mais je ne suis pas très doué pour la programmation...Voici mes problématiques ci-dessous:

1) Tout d'abord je cherche à améliorer le code du bouton 'Imprimer' pour pouvoir faire les choses suivantes

i) pouvoir faire une sélection multiple des onglets à imprimer avec Ctrl+click gauche par exemple? C'est possible que j'ai plus de 50 onglets+ dans ce fichier...

ii) avoir dans la mise en forme d'impression le numéro de page/nombres de pages total en bas de page (sauf pour la page d'accueil ou il n'y avait rien)

2) Par ailleurs, je souhaiterais avoir l'option de masquer des onglets (xlsheethidden ou xlsheetveryhidden) et/ou de les rendre visibles via la liste déroulante que j'ai inséré dans l'onglet 'Programmation' dans la colonne 'Visible'

En effet, le fichier que je mets en place sera utilisé par de nombreuses personnes qui n'ont pas tous un niveau avancé en informatique (et Excel ) et donc je souhaite avoir un fichier facile d'utilisation --> d'où l'onglet 'Programmation'.

Pouvez-vous m'aider via une macro similaire au bouton 'Imprimer' ou autre proposition qui vous semble plus adaptée?

Merci d'avance pour votre aide

Lematou

Bonjour

Mets tes onglets en "2- xlSheetVeryHidden" dans VBA Propriétés de la feuille.

Ensuite place le code suit dans les macros :

Worksheets("Le nom de feuille").Visible = True 'Rend feuille visible
Worksheets("Le nom de feuille").Activate

Et un petit fichier avec une liste déroulante.... affichant les feuilles invisibles sélectionnées dans la liste déroulante

1'277test.xlsm (16.52 Ko)

Bonjour et1000lio,

Merci pour ta réponse aussi rapide. Cependant, étant vraiment très très novice en la matière, je ne suis pas sur comment implémenter ta solution pour que mes listes déroulantes dans l'onglet 'Programmation' colonne G 'Visible' puissent me permettre de rendre visible ou non l'onglet dans le classeur...

Par ailleurs, aurais-tu une idée pour améliorer le code du bouton 'Imprimer' afin que dans la mise en page de l'impression apparaisse le "numéro de page/nombre de pages" comme la mise en forme en bas de page que j'ai mise?

Merci encore pour ton aide.

Bonjour Lematou,

Pour l'affichage de tes onglets, je t'ai programmé tous tes boutons.

Tous les onglets sont invisibles et accessibles uniquement par les boutons. On ne peut plus les afficher via le menu Excel ( la propriété Visible est en mode SheetVeryHidden pour chaque onglet)

Tu peux aussi faire apparaître ou faire disparaître l'ensemble des ongles (sauf l'onglet "programmation") par les deux macros :

1) MASQUER

2) DEMASQUER

Elles ne sont pas visibles à l'ouverture de la boite de dialogue Macro, mais tu tapes le noms de la macro et tu cliques sur le bouton Exécuter.

Code pour les rendre invisible - Excemple pour la macor MASQUER :

Sub MASQUER(Optional Factice As String)

Je t'ai modifié légèrement le code du bouton "Imprimer" pour faire apparaître l'ensemble des onglets :

Ajout code dans "Initialize"

Dim ER As Object
For Each ER In ThisWorkbook.Sheets
If ER.Name <> "Programmation" Then ER.Visible = xlSheetVeryHidden
Next ER

et pour les faire disparaitre quand tu cliques sur le bouton "Sortir" du formulaire :

Ajout code :

Dim ER As Object
For Each ER In ThisWorkbook.Sheets
If ER.Name <> "Programmation" Then ER.Visible = xlSheetVeryHidden
Next ER

Par contre pour ta question " aurais-tu une idée pour améliorer le code du bouton 'Imprimer' afin que dans la mise en page de l'impression apparaisse le "numéro de page/nombre de pages" comme la mise en forme en bas de page que j'ai mise?"

Cela dépasse mes compétences.... peut-être quelqu'un sur le forum pourra y répondre.

Merci beaucoup pour ton aide. Je vais mettre les différents codes dans mon fichier

Bonne journée et à bientôt

Rechercher des sujets similaires à "macro choisir afficher masquer onglets"