zorglubxp
XLDnaute Junior
Bonjour,
Voici mon petit problème du jour (ou plutôt du soir).
Je souhaite qu'à l'ouverture d'un classeur excel, s'affiche une feuille déterminée.
Il serait facile d'inscrire cette commande dans l’événement workbook_open, mais ce serait trop simple car sans compter sur mon esprit tortueux.
Pour que les éventuels sauveurs puissent comprendre le pourquoi de ma requête, je vais tenter d'en expliquer la raison.
Le fichier que j'utilise est destiné à être utilisé par plusieurs personnes. Comme mon fichier utilise beaucoup de macros, j'ai besoin que les options de sécurités soient désactivées.
Bien que j'ai déjà envoyé la procédure à tous mes collègues, je sais que la majeure partie ne l'aura pas appliqué.
Ainsi, j'ai eu l'idée de les "forcer" à le faire lorsqu'ils auront ouvert le fichier. J'entends par forcer, afficher un message les invitant à appliquer la procédure et suivre un tuto dont le lien est donné sous forme de lien hypertexte vers son emplacement sur le réseau interne. Cependant, je souhaite aussi que ce message ne pollue pas les bons élèves qui auront appliqués la procédure et qui par conséquent auront les macros qui fonctionneront dès l'ouverture du fichier.
Voilà donc ce que j'ai fait.
1: enregistrement du fichier sur l'onglet accueil
2: à l'ouverture du fichier, 2 solutions
3: lorsque l'utilisateur veut quitter le classeur, l’événement before close gère le masquage de la feuille de travail et rend visible la feuille "Accueil" et il doit enregistrer cliquer sur enregistrer pour que ce soit pris en compte (m^me si il avait déjà procédé à un enregistrement avant de vouloir quitter.
C'est donc afin d'éviter cette étape 3 que j'espère pouvoir trouver une solution.
En effet, outre le fait que ce ne soit pas très "esthétique" de faire un changement d'onglet avant de quitter, je me dis qu'en temps normal, Excel doit bien associer un attribue "dernier onglet affiché" à chaque classeur lors de son enregistrement.
C'est cette procédure que j'aimerais pouvoir récupérer afin de la provoquer avant l'enregistrement qui sera lancé dans le beforeclose. Ainsi ce serait transparent pour l'utilisateur.
J'ai bien conscience que ma solution est un peu capilotractée, mais c'est la seule qui me soit venue à l'esprit et qui fonctionne dans l'état de mes connaissances actuelles.
Donc si parmi vous, quelqu'un connait la réponse à ma requête, voire une autre solution qui serait beaucoup plus efficiente, je suis preneur.
Dans l'attente de vous lire, je vous souhaite à tous une bonne fin de soirée ou une bonne journée en fonction de l'heure à laquelle vous me lirez.
Zorg
Voici mon petit problème du jour (ou plutôt du soir).
Je souhaite qu'à l'ouverture d'un classeur excel, s'affiche une feuille déterminée.
Il serait facile d'inscrire cette commande dans l’événement workbook_open, mais ce serait trop simple car sans compter sur mon esprit tortueux.
Pour que les éventuels sauveurs puissent comprendre le pourquoi de ma requête, je vais tenter d'en expliquer la raison.
Le fichier que j'utilise est destiné à être utilisé par plusieurs personnes. Comme mon fichier utilise beaucoup de macros, j'ai besoin que les options de sécurités soient désactivées.
Bien que j'ai déjà envoyé la procédure à tous mes collègues, je sais que la majeure partie ne l'aura pas appliqué.
Ainsi, j'ai eu l'idée de les "forcer" à le faire lorsqu'ils auront ouvert le fichier. J'entends par forcer, afficher un message les invitant à appliquer la procédure et suivre un tuto dont le lien est donné sous forme de lien hypertexte vers son emplacement sur le réseau interne. Cependant, je souhaite aussi que ce message ne pollue pas les bons élèves qui auront appliqués la procédure et qui par conséquent auront les macros qui fonctionneront dès l'ouverture du fichier.
Voilà donc ce que j'ai fait.
1: enregistrement du fichier sur l'onglet accueil
2: à l'ouverture du fichier, 2 solutions
- la sécurité des macros est désactivée : le workbook_open rend l'onglet travail visible, puis l'active, et masque l'onglet accueil
- la sécurité des macros est activée et empêche donc l’exécution du workbook_open. le fichier s'ouvre alors sur le dernier onglet visible lors de l'enregistrement du classeur, en l’occurrence la feuille "Accueil"
Sur cette Feuille la procédure est donnée pour désactiver la sécurité (ou plutôt un lien vers cette procédure) et il y a un bouton de test, aucun autre onglet n'est visible du coup l'utilisateur (qui ne connait pas tres bien excel) ne pourra pas utiliser le classeur s'il ne va pas appliquer la procédure du tuto. Une fois la sécurité désactivée, l'utilisateur revient sur la feuille et clique sur le bouton. Vu que les macros sont activées cela masque cet onglet et fait apparaître l'onglet travail
3: lorsque l'utilisateur veut quitter le classeur, l’événement before close gère le masquage de la feuille de travail et rend visible la feuille "Accueil" et il doit enregistrer cliquer sur enregistrer pour que ce soit pris en compte (m^me si il avait déjà procédé à un enregistrement avant de vouloir quitter.
C'est donc afin d'éviter cette étape 3 que j'espère pouvoir trouver une solution.
En effet, outre le fait que ce ne soit pas très "esthétique" de faire un changement d'onglet avant de quitter, je me dis qu'en temps normal, Excel doit bien associer un attribue "dernier onglet affiché" à chaque classeur lors de son enregistrement.
C'est cette procédure que j'aimerais pouvoir récupérer afin de la provoquer avant l'enregistrement qui sera lancé dans le beforeclose. Ainsi ce serait transparent pour l'utilisateur.
J'ai bien conscience que ma solution est un peu capilotractée, mais c'est la seule qui me soit venue à l'esprit et qui fonctionne dans l'état de mes connaissances actuelles.
Donc si parmi vous, quelqu'un connait la réponse à ma requête, voire une autre solution qui serait beaucoup plus efficiente, je suis preneur.
Dans l'attente de vous lire, je vous souhaite à tous une bonne fin de soirée ou une bonne journée en fonction de l'heure à laquelle vous me lirez.
Zorg