Rapport de message :*
 

Re: impression de plusieur onglet

Titre du sujet : Re: impression de plusieur onglet
par Guy le 27/11/2011 23:29:16

Bonjour Slijack,

Le point 1 a été divisé en trois points
    1.1- Création ou ajout d'une nouvelle feuille.
    1.2- Modification du nom d'onglet d'une feuille.
    1.3- Suppression d'une feuille.

J'ai aussi tenu compte du point 2.

Pour détecter l'ajout d'une feuille au classeur quoi de mieux que d'utiliser l'événement
Workbook_NewSheet(ByVal Sh As Object)
à partir duquel on pourra mettre en place une astuce de surveillance du changement de nom de l'onglet.

Cette astuce consiste à poser dans la feuille Impression (dont le nom de code est FeuilleMaitresse) une cellule avec une formule faisant référence à la feuille nouvellement ajoutée.

Ainsi par exemple en cellule Impression!E24, ce qui est affiché "Bonjour" est le nom de la feuille référencée par =NomOnglet(Bonjour!A1). Si l'usager modifie le nom Bonjour, la fonction mettra à jour le nouveau nom de cet onglet. À noter que pour que le processus soit automatique la fonction NomOnglet doit être volatile, c'est-à-dire recalculée automatiquement à chaque changement. Voilà donc réglés les points 1.1 et 1.2

Reste le dernier point : si l'utilisateur supprime une feuille, qu'advient-il de la référence à celle-ci dans la liste?

À la suppression d'une feuille le moteur de calcul d'Excel doit réviser toutes les formules faisant références à la feuille disparue et l'événement Calculate est déclenché. Nous nous appuierons sur cet événement
Workbook_SheetCalculate(ByVal Sh As Object)
avec la procédure SurveillerSuppressionOnglet() pour mettre à jour la liste des onglets du classeur.  La référence à la feuille supprimée sera de la forme #REF!A1 et on supprimera la ligne complète portant cette référence brisée.

Je n'ai inclus aucun gestionnaire d'erreur, à dessein. Teste le classeur tel qu'il est en ajoutant et supprimant des feuilles, sauf évidemment, la feuille Impression et donne-moi des nouvelles.

Nous peaufinerons la chose en fonction de tes remarques.

Cordialement,

Guy
Note : Merci Didier, pas plus d'un point dans le nom de fichier. Ce sera mon mantra désormais, j'espère.