J'ai un petit problème que je ne parviens pas à résoudre alors j'ai décidé de posté sur le forum.
Voici mon petit problème: J'ai une liste de choix dans laquelle je peux sélectionner les noms de certains de mes onglets. Une fonction index me redonne le nom de l'onglet sur cette même page qui a été sélectionne.
Dans un premier temps je voudrai cacher les onglets présent dans cette liste de choix et les bloquer avec un mot de passe.
Ensuite je voudrai qu'en cliquant sur un bouton "imprimer la sélection" imprimer mon onglet (qui est caché...). Je sais que cela implique leur activation dans le code mais je ne sais pas comment faire.
Merci d'avance pour votre aide.
Je joint un fichier joint pour comprendre mon petit problème
Si tu veux masquer un onglet en VBA, le code est :
Code:
Sheets("A").Visible = True
Si tu veux afficher un onglet en VBA, le code est :
Code:
Sheets("A").Visible = False
Pour protéger un onglet en VBA, le code est :
Code:
Sheets("A").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="Mot de passe Feuille A"
Pour dé-protéger un onglet en VBA, le code est :
Code:
Sheets("A").Unprotect Password:="Mot de passe Feuille A"
PS. : comme tu le constate, l'inconvénient de cette méthode, le code protégeant ton(es) onglet(s) ... est inscrit en toute lettre dans la macro. Donc si quelqu'un ouvre ta macro, il saura comment dé-protéger ton onglet.
Sinon, pour remédier à ce problème, il faut protéger ta macro par un mot de passe.
Avant d'imprimer un onglet via une macro, il faut le réafficher, mais tu n'es pas obligé de le dé-protéger.
Mais rien ne t'empêche, une fois l'impression lancé, avant de rendre la main à l'utilisateur, de cacher à nouveau l'onglet voulu!
Et si en plus tu utilise le code ci-dessous, l'onglet demeurera invisible pour l'utilisateur.
Code:
[COLOR="Green"]'A placer au début de ta macro[/COLOR]
Application.ScreenUpdating = False
Code:
[COLOR="Green"]'A placer à la fin de ta macro[/COLOR]
Application.ScreenUpdating = True
Tu ne m'en voudras pas Excel-lent, mais je lui ai fais la chose... (à mon idée)
Hm je sais pas trop le principe du Forum
Mais attention Superchou, comme le dit si bien l'ami Excel-lent...
l'inconvénient de cette méthode, le code protégeant ton(es) onglet(s) ... est inscrit en toute lettre dans la macro. Donc si quelqu'un ouvre ta macro, il saura comment dé-protéger ton onglet.
Sinon, pour remédier à ce problème, il faut protéger ta macro par un mot de passe.
J'ai regardé le fichier que tu as modifié. J'aime beaucoup le bouton que tu as fait pour cacher les onglets. Je vais tenter de le recopier dans mon véritable projet.
Par contre, pour le bouton imprimer je ne le comprends pas trop. Je ne comprends comment il fait pour aller chercher les noms de mes onglets.
Il ne serait pas plus simple de reprendre le nom de l'onglet obtenu en C15 sur la page d'accueil et de lancer l'impression directement depuis cette sélection???
j'avais pensé au problème du mot de passe que l'on peut voir dans le code VBA mais y a t'il un moyen de le cacher d'une manière pas trop compliqué??
Lorsque tu es dans tes macros (pour y aller à partir de ta feuille excel : "ALT" + "F11")
Il te suffit de :
-> placer le curseur de ta souri sur VBAProjext(nom de ton fichier) qui figure dans la partie de gauche, au 1er 1/3
-> fais un clic DROIT
-> sélectionne dans le menu contextuel : "Propriété de VBAProject..."
-> onglet "protection"
-> après il te reste plus qu'à te laisser guider.
Petite précision, (je pense que tu t'en es déjà rendu compte Superchou, mais au cas ou) il faut enregistrer puis quitter le fichier pour que la protection VBA se fasse.