Numéroter les feuilles (onglets) Excel

Bonjour,

J'ai un classeur EXCEL qui contient plusieurs feuilles (onglet) où une feuille est une page d'un compte rendu (voir fichier joint).

J'aimerai dans ce fichier pouvoir numéroter les feuilles automatiquement sans utiliser l'insertion d'entête, donc insérer le numéro de la position de la feuille dans le classeur sous la forme : "feuille active / feuilles au total" (ex : 9/16) .

Auriez vous des solutions pour :

1 - Connaitre la position de la feuille et l'insérer dans une cellule (ici CA1).

2 - Compter le nombre total de feuilles du classeur (dans CC1).

Je précise que je maitrise mal VBA

Merci d'avance

118compte-rendu.xlsm (74.83 Ko)

Bonjour,

Il serait utile de préciser s'il n'y aura -dans ton classeur- QUE des feuilles à "comptabiliser" dans la numérotation

Si oui, Dans la fenêtre de code du ThisWorkbook, tester:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Sh.[CA1] = Sh.Index
Sh.[CC1] = Sheets.Count
End Sub

Bonjour,

Oui il n'y aura que des feuilles a comptabilisé.

Je te remercie .

Bonjour,

Il y a juste un petit soucis dans ta solution:

Si je n'ouvre pas les onglets, la numérotation ne se met pas à jour.

Je m'explique, la numérotation se fait parfaitement lorsque l'onglet est ouvert mais si on actualise pas les autres onglet avant d'imprimer la numérotation n'a pas changer sur les autres feuilles (non ouvertes).

Aurais-tu une solution soit pour qu'un rafraichissement de toutes les feuilles ce fasse ?

Merci d'avance

Fazzbetter a écrit :

si on actualise pas les autres onglet avant d'imprimer la numérotation n'a pas changer sur les autres feuilles (non ouvertes).

... Quoi, tu imprimes le classeur entier? Il y a bien un événement qui y est associé, mais alors, si tu ajoutes une feuille ou que tu la supprimes, le numéro ne sera pas visible dans la feuille elle-même, tant que tu n'auras pas imprimé (et les autres feuilles ne seront pas re-numérotées non plus)

Tu peux laisser cohabiter les deux procédures événementielles (restera à voir s'il n'y a pas encore d'autres situations non prises en charge!?) ... mais il faut surtout être vigilant à ne pas créer "monstre", une "usine à gaz" !!

Au même endroit, essaie d'ajouter ce qui suit:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
For Each f In ThisWorkbook.Sheets
    cpt = cpt + 1
    If f.[CA1] = "" Then f.[CA1] = cpt: f.[CC1] = Sheets.Count
Next f
'Cancel = True
End Sub

La ligne en commentaire permet d'annuler l'impression de tout le classeur quand tu fais des tests (enlève l'apostrophe en début de ligne pour économiser l'encre et le papier, dans un premier temps et, si ça te semble fonctionner comme tu le souhaites, supprime la ligne)

Bonjour,

Merci de ta réponse cela marche

Rechercher des sujets similaires à "numeroter feuilles onglets"