XL 2010 Renommer séquentiellement les feuilles objets (vbe)

herve62

XLDnaute Barbatruc
Supporter XLD
Bonsoir
Il me semble (plus sûr) 'il y qq années JOB m'avait permis de renommer les feuilles (voir image) 1 2 3 4 5 ... et pas 45 46 ...
mais je retrouve pas
Est ce vraiment possible ?
 

Pièces jointes

  • noms F.jpg
    noms F.jpg
    8.6 KB · Affichages: 3

Staple1600

XLDnaute Barbatruc
Re

@Jacky67
Moi aussi, je fais dans le VBA mais uniquement les jours de pluie ou les nuits sans lune. ;)
[!!!alerte sexisme détectée dans le message!!!]
Non, la vraie raison, c'est pour épater mes collègues à jupons au boulot.
Mais ca marche moyen, vu qu'elles ont le nez rivé sur l'écran de leur smartphone
;)
 

patricktoulon

XLDnaute Barbatruc
re
le renommage en masse
j'ai vu passer 2/3 fois une boucle avec un renomage avec les index
il y a juste un petit problème
il arrive que dans le classeur on ajoute ou enlève des feuille ou pire on les déplace dans un ordre différent
si bien que par exemple ceci
1695148304940.png


se retrouve comme ceci dans le vbe
1695148350933.png

je vous laisse imaginer l'ordre si je renomme
qui ne sera bien sur pas le même
 

Dranreb

XLDnaute Barbatruc
J'avoue que je ne sais pas. Je soupçonne que s'il faut l'écrire ainsi quand on emploie .Properties c'est parce ce n'est pas vraiment une propriété de l'objet. @Staple1600 emploie plutôt .Name et c'est plus clair. j'ignore si ça n'aurait pas quelque inconvénient. J'ai trouvé comme ça, avec .Properties, sur la toile, c'est tout.
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Il me semble (plus sûr) 'il y qq années JOB m'avait permis de renommer les feuilles (voir image) 1 2 3 4 5 ... et pas 45 46 ...
mais je retrouve pas
Est ce vraiment possible ?
Comme déjà dit par les différents intervenants, il suffit de changer, soit manuellement, soit par VBA, le "CodeName" de chaque feuille.
Si tu le fais par macro, il faut savoir quel critère permet de savoir quel CodeName donner à quelle feuille. Il faut aussi faire attention lors du renommage à ne pas attribuer un CodeName qui est déjà attribué à une autre feuille.


Le truc c'est que si le si le fichier se lance x fois ( possible d'aller à + de 500) je ne sais pas si VBE acceptera Feuil567 exemple ?
et se taper manuellement .... à chaque fois pas marrant
Si tu dois partir sur 567 feuilles ou plus, un conseil : n'utilise pas le CodeName Feuil1, mais Feuil001, sinon à la fin tu vas pleurer parce que tes feuilles ne seront pas dans le bon ordre... ;)
 
Dernière édition:

Phil69970

XLDnaute Barbatruc
Re

@herve62

Mais à quoi cela sert ? 🤔
Sinon il faut aimer se faire mal !!
Et comme l'a démontré Patrick tu vas plutôt au bug du reste de ton code :oops:

Une autre solution :

VB:
Sub ChangeCodeName()
Dim MaFeuille As Worksheet
Set MaFeuille = Worksheets("Feuil1") 'Nom de l'onglet ==> le Name
MaFeuille.[_CodeName] = "Toto"       'Nom interne de l'onglet ==> le codeName
Set MaFeuille = Nothing
End Sub

Mais perso on marche un peu sur la tête car on part du nom de l'onglet celui que l'utilisateur peut modifier facilement pour renommer le nom interne (le codeName) de la dite feuille celui qui n'est pas accessible autrement que par le code VBA

Sans compter que tu dois faire un test
1)
sur le nom de l'onglet (le Name) pour être sur que l'onglet existe sinon erreur d’exécution 9

1695166696108.png


ET un test quelque soit la méthode choisi
2)
sur le nom interne (le CodeName) de la feuille pour être sur que le nom interne (le CodeName) n'est pas déjà attribué sinon erreur d’exécution 32813

1695166821569.png


Et pour finir le CodeName est limité à 31 caractères o_O donc tu peux dormir tranquille je pense .....;)
 

Discussions similaires

Réponses
5
Affichages
242
Réponses
7
Affichages
370