réindexer les feuilles

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LSteph
Le #18554551
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




Claire
Le #18554631
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"
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




Daniel.C
Le #18554791
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"
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






LSteph
Le #18554781
.. 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"
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








michdenis
Le #18554771
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"
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"
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




gmlsteph
Le #18559061
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
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" >
>> 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 -


Daniel.C
Le #18562531
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
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"
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 -




Publicité
Poster une réponse
Anonyme