Vba:comment numéroter les n° d'index des onglets d'un classeur

Résolu/Fermé
jiaco79 Messages postés 12 Date d'inscription jeudi 14 mars 2013 Statut Membre Dernière intervention 5 septembre 2013 - 3 juin 2013 à 11:58
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 6 sept. 2013 à 10:40
Bonjour,

En VBA je cherche à savoir comment renuméroter les n° d'index des pages d'un classeur que je viens de trier par odre alphabètique avec une procédure vba, mes numéros d'index sont dans le désordre et je voudrais qu'ils se remettent de 1 à 100 sans modifier l'ordre des noms d'onglets fraichement triés.
Je vous remercie par avance pour toute l'aide que vous pourrez m'apporter.

Cordialement

Jiaco79



8 réponses

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
Modifié par eriiic le 3/06/2013 à 12:27
Bonjour,

Le n° d'index correspond à la position de feuille c'est tout.
Si tu veux lui donner le n°1 il faut qu'elle soit en premier.
Donc choisis entre n° d'index dans l'ordre ou ordre du tri voulu.
Maintenant tu peux leur changer le codename (Feuil1) qui est indépendant du nom (Résultat).
Dans VBA tu lis : codename (nom de la feuille)

eric

Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
0
jiaco79 Messages postés 12 Date d'inscription jeudi 14 mars 2013 Statut Membre Dernière intervention 5 septembre 2013
3 juin 2013 à 13:48
Bonjour eric,

Merci d'avoir réagis si rapidement à ma demande mais je crois ne pas m'être très bien expliqué. En fait j'ai un fichier avec une multitude d'onglets et losrque l'on rajoute une feuille supplémentaire pour insèrer un nouvelle outils par exemple il doit-être réindexé systèmatiquement dans la foulée après le tri des onglets et c'est cette partie que je ne maitrise pas encore: Réindexer les feuilles de 1 à x feuilles à chaque ajout d'une feuille identique aux autres mais vide de données. Voila mon problème j'ai codé la partie du programme qui tri les feuilles automatiquement et je n'ai pas le choix, je dois réussir à exécuter ces deux types de tri à chaque ajout avec l'aide une procédure évènnementielle.
Je te remercie encore pour ton aide de ce matin et j'éspère ne pas trop mal m'être expliqué cette fois-ci.
Bon courage et naturellement je reste à ta disposition pour plus d'infos.

Très cordialement.

jiaco79
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
Modifié par eriiic le 3/06/2013 à 14:12
En quoi que l'index soit 5 ou 12 peut-il te gêner ?
Au risque de me répéter l'index d'une feuille est sa position : c'est son rôle (je ne peux pas mettre en rouge !).

Tu parles sans doute d'autre chose mais je ne vois pas quoi. Il manque des éléments...
Donne plutôt ta problématique, tu es peut-être sur une mauvaise piste de résolution.
Que veux-tu en faire de cet index ? Quel est ton problème ?

eric
-1
jiaco79 Messages postés 12 Date d'inscription jeudi 14 mars 2013 Statut Membre Dernière intervention 5 septembre 2013
3 juin 2013 à 15:19
C'est moi de nouveau,

J'ai besoins des n° d'index car ils me servent de balises pour la gestion des nouvelles matrices insérées par les utilisateurs, cest la raison pour laquelle je voudrais arriver à trouver le code qui peux renommer les feuilles dans le VBE sans être obliger de la faire à la main lors des rajouts d'onglets. En seulement 45 feuilles plus aucunes n'est placées au bon endroit par rapport aux positions de chaque feuilles. Ne perds pas ton temps pour un programme que peu de personnes ne doivent en avoir l'utilisation, si j'arrive à trouver je te communiquerai de quelle manière j'y suis parvenu.
Merci pour l'attention que vous portez à nous et à nos problèmes. Je te souhaite à toi et à toute ton équipe de passer une bonne journée.
Merci encore.

Très cordialement

jiaco79
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
3 juin 2013 à 16:28
sans être obliger de la faire à la main
Explique comment tu fais pour changer l'index à la main ?
Ca éclairera sans doute beaucoup de chose.
eric
0
jiaco79 Messages postés 12 Date d'inscription jeudi 14 mars 2013 Statut Membre Dernière intervention 5 septembre 2013
3 juin 2013 à 17:03
Pour que les numéros d'index correspondent à l'emplacement de chaque onglet j'ouvre l'Editeur VB, Ctrl+R: explorateur de projet puis je sélectionne la 1ère feuille triée auparavant, F4 pour propriétés et la je modifie manuellement le numéro d'index pour qu'il corresponde à la position de la page. Et c'est bien cette procédure que je veux arriver à faire car j'ai des fichiers ou les utilisateurs insèrent et retirent des onglets depuis des années ce qui fait que les numéros d'index ne correspondent plus à rien et j'aimerais vraiment faire le ménage avec une procédure qui le fasse automatiquement. Je vais creuser la piste des CodeNames dont tu m'as parlé ce midi.
Merci pour la patience que tu me prêtes et pour ta compréhension.
Je te souhaite de passer une bonne soirée.

Cordialement

jiaco79
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
3 juin 2013 à 17:28
et la je modifie manuellement le numéro d'index pour qu'il corresponde à la position de la page
Il n'y a pas de propriété Index dans la fenêtre Propriétés. Pour une feuille elle n'est accessible qu'en lecture.
Si c'est ça que tu modifies :

c'est le codename.

Aide :
CodeName, propriété
Cette propriété renvoie le nom de code de l'objet. Type de données String en lecture seule.

Remarque  La valeur qui apparaît dans la cellule affichée à droite de (Nom) dans la fenêtre Propriétés correspond au nom de code de l'objet sélectionné. Au moment de la création, vous pouvez changer le nom de code d'un objet en modifiant cette valeur. Il est toutefois impossible de modifier cette propriété par programmation au moment de l'exécution.


Tu peux arrêter de chercher...
eric
0
jiaco79 Messages postés 12 Date d'inscription jeudi 14 mars 2013 Statut Membre Dernière intervention 5 septembre 2013
4 juin 2013 à 07:01
OK Eric je te remercie pour ton aide, la prochaine fois j'essayerai de trouver quelque chose de moins bizzare à coder.
Passes une bonne journée.

jiaco79
0
jiaco79 Messages postés 12 Date d'inscription jeudi 14 mars 2013 Statut Membre Dernière intervention 5 septembre 2013
5 sept. 2013 à 12:07
Bonjour Eric,

Je crois avoir trouvé la solution pour remettre les n° d'index à chaque page sans les déplacer par odre alphabèthique !

<Code>


Sub RemetEnPlaceNoIndex()
Dim ws As Worksheet
Dim I As Integer


On Error Resume Next

For Each ws In ActiveWorkbook.Worksheets

ws.Parent.VBProject.VBComponents(ws.CodeName).Properties("_CodeName") = "Feuil" & I + 1

I = I + 1

Next ws

End Sub


<Fin Code>

En espèrant que ça servira à quelqu'un, normalement ce code fonctionne parfaitement.
Bonne journée
A++

Jiaco79
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
6 sept. 2013 à 10:40
Bonjour,

très intéressant, merci pour le retour.
eric
0