Renumérotation des indices des feuilles dans une suite continue

AlainDeP Messages postés 6 Statut Membre -  
AlainDeP Messages postés 6 Statut Membre -
Bonjour,

Comment puis-je renuméroter les indices des feuilles dans une suite continue (1, 2, 3...) ?

Merci.
AlainDeP

2 réponses

via55 Messages postés 14730 Statut Membre 2 750
 
Bonjour

Il faut sans doute passer par une macro mais impossible d'en dire plus car tu ne donnes pas assez d'éléments :
- est ce toutes les feuilles ou que certaines ?
- les nom des feuilles sont 1, 2 ... ou quelque chose comme Feuil1, Feuil2 ... ?
- quelle renumérotation est à effectuer, que la 1 devienne 10; la 2 20 etc ?

Le mieux pour avoir une aide efficace est toujours de joindre un exemple de fichier, à poster sur cjoint.com, faire créer un lien, le copier et revenir le coller ici dans un prochain message

Cdlmnt
Via

"L'imagination est plus importante que le savoir."    A. Einstein
0
AlainDeP
 
Merci pour votre réponse rapide...
Chaque feuille à son propre qui reprend deux données contenues dans deux cellules de la feuille.
En l'occurrence, la forme du nom d'une feuille est "employeur employé".
Cette une macro qui met à jour les noms des feuilles et qui trient les onglets.
Comme j'ai un modèle de feuille qui évolue, j'ai conçu une macro qui remplace toutes les feuilles existantes par de nouvelles feuilles qui ont le nouveau modèle, chacune des nouvelles feuilles récupérant les anciennes données.
Bref, cette procédure provoque des indices discontinus. Et une boucle du type
For n=1 to Worksheets.Count ne parvient plus à opérer pour les feuilles dont l'indice est supérieur à Worksheets.Count.
Merci d'avance pour votre avis.
AlainDeP.
0
eriiic Messages postés 25847 Statut Contributeur 7 279
 
Bonjour,

l'index d'une feuille n'a rien à voir avec son nom, il ne dépend que de la position de l'onglet.
Tu ne peux pas avoir de feuille d'index supérieur à Worksheets.Count
For n=1 to Worksheets.Count balaie TOUTES les feuilles.
Contrôle son nom worksheets(n).name pour savoir sur laquelle tu es.
eric
0
AlainDeP Messages postés 6 Statut Membre > eriiic Messages postés 25847 Statut Contributeur
 
Si, j'ai des feuilles d'index supérieur à Worksheets.Count. C'est ça le problème.

Dans VBAProject, Microsoft Excel Objets, la liste des feuilles apparaît comme suit :
Feuil1 (Employeur x Employé y)
Feuil2 (Employeur z Employé t)
...
Feuil50 (Employeur i Employé j)

Mais la suite de FeuilleN est discontinue : par exemple, Feuil10 ou Feuil 20 n'existe pas.
À peu près, la moitié des FeuilN pour N=1 à 50 n'existent pas. En réalité, Worksheets.Count = 26.

Comment puis-je vous communiquer une capture d'écran ?

AlainDeP.
0
eriiic Messages postés 25847 Statut Contributeur 7 279
 
Il s'agit des codenames des feuilles qui n'ont aucun rapport non plus avec les index.
Met Feuil3 en première position son index deviendra 1. Son nom (Feuil3) et son codename Feuil3 n'auront pas changés.
Dans VBE tu peux très bien changer un codename en toto, sans numéro.
Si Worksheets.Count = 26 c'est que tu as 26 feuilles, pas une de plus.
Base-toi sur son nom ou sur une cellule particulière pour savoir sur quelle feuille tu es.
eric
0
AlainDeP Messages postés 6 Statut Membre
 
J'ai continué à creuser la question. Vous avez raison...
Je dois simplement ignorer l'affichage dans VBAProject, Microsoft Excel Objets, où la liste des feuilles (avec l'indice qui suit 'Feuil') ne reflète pas les indices réels.
Merci encore de vous être penché sur la question.
Cordialement,
Alain.
0
eriiic Messages postés 25847 Statut Contributeur 7 279
 
Je n'avais pas vu ceci, j'ai répondu au-dessus
0
AlainDeP Messages postés 6 Statut Membre > eriiic Messages postés 25847 Statut Contributeur
 
C'est très clair.
Merci infiniment.
Excellente soirée,
Alain.
0