Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

réindexer les feuilles

7 réponses
Avatar
Claire Daoust
Bonjour,
J'ai un fichier et je voudrais en réindexer les feuilles pour faciliter
l'utilisation d'une macro. J'ai déjà vu cela sur le web, mais je n'arrive
pas à le trouver.

Merci
Claire

7 réponses

Avatar
LSteph
Bonsoir,

que veux tu dire?

--
lSteph


Claire Daoust a écrit :
Bonjour,
J'ai un fichier et je voudrais en réindexer les feuilles pour faciliter
l'utilisation d'une macro. J'ai déjà vu cela sur le web, mais je n'arrive
pas à le trouver.

Merci
Claire




Avatar
Claire
Suite à une réorganisation de mon fichier, l'ordre des mes feuilles a
changé. Malheureusement, le numéro d'index (Sheet.index) n'a pas changé.
Dans ma macro, je fais référence aux feuilles 10 à 20.
ex.: for i = 10 to 20
10 à 20 étant les numéros d'index de mes feuilles.
Les numéros de mes feuilles doivent se suivre.
Je ne sais pas si je me fais bien comprendre.
La feuille portant le numéro 10 a été détruite par erreur et si je la
recrée, elle ne porte pas le numéro 10 (feuil10)


"LSteph" a écrit dans le message de news:

Bonsoir,

que veux tu dire?

--
lSteph


Claire Daoust a écrit :
Bonjour,
J'ai un fichier et je voudrais en réindexer les feuilles pour faciliter
l'utilisation d'une macro. J'ai déjà vu cela sur le web, mais je
n'arrive pas à le trouver.

Merci
Claire




Avatar
Daniel.C
Bonsoir.
La feuille dont l'onglet est le plus à gauche porte le n° d'index 1, la
suivante le n° 2 etc. Si tu veux continuer à travailler avec les
numéros d'index, il faut reclasser tes feuilles. Le "10" de "Feuil10"
ne correspond pas au numéro d'index. "Feuil10" est soit le nom soit le
codename de la feuille. Tu peux renommer ta feuille, mais tu ne peux
pas en changer le codename.
Cordialement.
Daniel

Suite à une réorganisation de mon fichier, l'ordre des mes feuilles a changé.
Malheureusement, le numéro d'index (Sheet.index) n'a pas changé. Dans ma
macro, je fais référence aux feuilles 10 à 20.
ex.: for i = 10 to 20
10 à 20 étant les numéros d'index de mes feuilles.
Les numéros de mes feuilles doivent se suivre.
Je ne sais pas si je me fais bien comprendre.
La feuille portant le numéro 10 a été détruite par erreur et si je la recrée,
elle ne porte pas le numéro 10 (feuil10)


"LSteph" a écrit dans le message de news:

Bonsoir,

que veux tu dire?

--
lSteph


Claire Daoust a écrit :
Bonjour,
J'ai un fichier et je voudrais en réindexer les feuilles pour faciliter
l'utilisation d'une macro. J'ai déjà vu cela sur le web, mais je n'arrive
pas à le trouver.

Merci
Claire






Avatar
LSteph
.. tu as ceci qui ira peut-être:

http://xcell05.free.fr/pages/telecharge/index.html#Trifeuilles


Sinon dans le cas que tu décris cela pourrait partir de 1 et non 10 pour
garder la logique mais on ne sait pas si tu parles du name ou du
codename alors pas sûr...
Voici une façon qui partirait de Feuil1 si elle existe , mais ne
rebouche pas les trous

Sub trifeuilles()
Dim i As Long, sh As Worksheet
For Each sh In ThisWorkbook.sheets
sh.Name = "T" & sh.CodeName
Next
For Each sh In ThisWorkbook.sheets
sh.Name = Right(sh.Name, Len(sh.Name) - 1)
Next
For i = sheets.Count To 2 Step -1
On Error Resume Next
ThisWorkbook.Worksheets("Feuil" & i).Move after:=sheets("Feuil1")
Next
End Sub


'lSteph


Claire a écrit :
Suite à une réorganisation de mon fichier, l'ordre des mes feuilles a
changé. Malheureusement, le numéro d'index (Sheet.index) n'a pas changé.
Dans ma macro, je fais référence aux feuilles 10 à 20.
ex.: for i = 10 to 20
10 à 20 étant les numéros d'index de mes feuilles.
Les numéros de mes feuilles doivent se suivre.
Je ne sais pas si je me fais bien comprendre.
La feuille portant le numéro 10 a été détruite par erreur et si je la
recrée, elle ne porte pas le numéro 10 (feuil10)


"LSteph" a écrit dans le message de news:

Bonsoir,

que veux tu dire?

--
lSteph


Claire Daoust a écrit :
Bonjour,
J'ai un fichier et je voudrais en réindexer les feuilles pour faciliter
l'utilisation d'une macro. J'ai déjà vu cela sur le web, mais je
n'arrive pas à le trouver.

Merci
Claire








Avatar
michdenis
Le principe de la macro, elle boucle sur toutes les feuilles
de la macro une première fois, et elle attribue un index
suffisamment élevé (500 - en espérant que tu n'en es
pas là sinon, tu peux en choisir un plus grand) pour faire
en sorte de ne pas tenter d'attribuer une seconde fois un
index déjà existant. Dans un second temps, une deuxième
boucle s'effectue pour repartir les index à 1.
L'ordre de traitement des feuilles se fait de gauche à droite.

Tu adaptes selon ton besoin.
'-------------------
Sub test()
Dim Sh As Worksheet
Dim A As Integer, Elt As Variant, Arr

With ThisWorkbook
For Each Elt In Array(500, 0)
A = Elt
For Each Sh In .Worksheets
A = A + 1
'Modifie l'onglet de la feuille
Sh.Name = "Feuil" & A
'Modifie le nom de l'objet feuille dans la fenêtre VBA
.VBProject.VBComponents(Sh.CodeName).Name = "Feuil" & A
Next
Next
End With
End Sub




"Claire" a écrit dans le message de groupe de discussion :

Suite à une réorganisation de mon fichier, l'ordre des mes feuilles a
changé. Malheureusement, le numéro d'index (Sheet.index) n'a pas changé.
Dans ma macro, je fais référence aux feuilles 10 à 20.
ex.: for i = 10 to 20
10 à 20 étant les numéros d'index de mes feuilles.
Les numéros de mes feuilles doivent se suivre.
Je ne sais pas si je me fais bien comprendre.
La feuille portant le numéro 10 a été détruite par erreur et si je la
recrée, elle ne porte pas le numéro 10 (feuil10)


"LSteph" a écrit dans le message de news:

Bonsoir,

que veux tu dire?

--
lSteph


Claire Daoust a écrit :
Bonjour,
J'ai un fichier et je voudrais en réindexer les feuilles pour faciliter
l'utilisation d'une macro. J'ai déjà vu cela sur le web, mais je
n'arrive pas à le trouver.

Merci
Claire




Avatar
gmlsteph
Si si on peut, mais il faut cocher faire confiance au projet VBA dans
la sécurité des macros:

Sub ChangeCodeNameEtName()
Dim i As Long

For i = Sheets.Count To 1 Step -1

ThisWorkbook.VBProject.VBComponents(Sheets(i).CodeName).Name =
"XFeuil" & i
Sheets(i).Name = Sheets(i).CodeName

Next
For i = Sheets.Count To 1 Step -1

ThisWorkbook.VBProject.VBComponents(Sheets(i).CodeName).Name =
"Feuil" & i
Sheets(i).Name = Sheets(i).CodeName

Next

End Sub

'lSteph

On 1 fév, 23:37, Daniel.C wrote:
Bonsoir.
La feuille dont l'onglet est le plus à gauche porte le n° d'index 1, la
suivante le n° 2 etc. Si tu veux continuer à travailler avec les
numéros d'index, il faut reclasser tes feuilles. Le "10" de "Feuil10"
ne correspond pas au numéro d'index. "Feuil10" est soit le nom soit le
codename de la feuille. Tu peux renommer ta feuille, mais tu ne peux
pas en changer le codename.
Cordialement.
Daniel



> Suite à une réorganisation de mon fichier, l'ordre des mes feuilles a changé.
>  Malheureusement, le numéro d'index (Sheet.index) n'a pas changé. Dans ma
> macro, je fais référence aux feuilles 10 à 20.
> ex.: for i = 10 to 20
> 10 à 20 étant les numéros d'index de mes feuilles.
> Les numéros de mes feuilles doivent se suivre.
> Je ne sais pas si je me fais bien comprendre.
> La feuille portant le numéro 10 a été détruite par erreur et si je la recrée,
> elle ne porte pas le numéro 10 (feuil10)

> "LSteph" a écrit dans le message de news:
>
>> Bonsoir,

>> que veux tu dire?

>> --
>> lSteph

>> Claire Daoust a écrit :
>>> Bonjour,
>>> J'ai un fichier et je voudrais en réindexer les feuilles pour facil iter
>>> l'utilisation d'une macro.  J'ai déjà vu cela sur le web, mais je n'arrive
>>> pas à le trouver.

>>> Merci
>>> Claire- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
Daniel.C
J'ai encore appris un truc !

Daniel

Si si on peut, mais il faut cocher faire confiance au projet VBA dans
la sécurité des macros:

Sub ChangeCodeNameEtName()
Dim i As Long

For i = Sheets.Count To 1 Step -1

ThisWorkbook.VBProject.VBComponents(Sheets(i).CodeName).Name > "XFeuil" & i
Sheets(i).Name = Sheets(i).CodeName

Next
For i = Sheets.Count To 1 Step -1

ThisWorkbook.VBProject.VBComponents(Sheets(i).CodeName).Name > "Feuil" & i
Sheets(i).Name = Sheets(i).CodeName

Next

End Sub

'lSteph

On 1 fév, 23:37, Daniel.C wrote:
Bonsoir.
La feuille dont l'onglet est le plus à gauche porte le n° d'index 1, la
suivante le n° 2 etc. Si tu veux continuer à travailler avec les
numéros d'index, il faut reclasser tes feuilles. Le "10" de "Feuil10"
ne correspond pas au numéro d'index. "Feuil10" est soit le nom soit le
codename de la feuille. Tu peux renommer ta feuille, mais tu ne peux
pas en changer le codename.
Cordialement.
Daniel



Suite à une réorganisation de mon fichier, l'ordre des mes feuilles a
changé.  Malheureusement, le numéro d'index (Sheet.index) n'a pas changé.
Dans ma macro, je fais référence aux feuilles 10 à 20.
ex.: for i = 10 to 20
10 à 20 étant les numéros d'index de mes feuilles.
Les numéros de mes feuilles doivent se suivre.
Je ne sais pas si je me fais bien comprendre.
La feuille portant le numéro 10 a été détruite par erreur et si je la
recrée, elle ne porte pas le numéro 10 (feuil10)
"LSteph" a écrit dans le message de news:

Bonsoir,





que veux tu dire?





--
lSteph





Claire Daoust a écrit :
Bonjour,
J'ai un fichier et je voudrais en réindexer les feuilles pour faciliter
l'utilisation d'une macro.  J'ai déjà vu cela sur le web, mais je
n'arrive pas à le trouver.







Merci
Claire- Masquer le texte des messages précédents -







- Afficher le texte des messages précédents -