XL 2016 Modifier le nom d'un fichier dans une macro

luke3300

XLDnaute Impliqué
Bonjour le forum,

J'ai besoin de votre aide concernant le nom d'un onglet à intégrer dans une macro.
En fait, j'utilise un onglet qui est nommé de la manière suivante: DO55_GUIX_9999 et dont les 4 derniers chiffres sont différents à chaque fois que je le génère.
Dans la macro que j'utilise, le nom du fichier n'est repris que comme: DO55_GUIX et donc je suis obligé de renommer l'onglet comme tel avant d'activer celle-ci.
C'est pas trop gênant me direz-vous, mais j'aimerais "zapper" cette étape et que le code de la macro prenne la feuille en compte, quel que soit les 4 derniers chiffres qui figurent dans le nom.

C'est à cette étape que ça coince: Worksheets("DO55_GUIX_9999").Activate

Et ma question est donc: par quoi est-ce que je peux remplacer le "_9999" dans le code pour que la macro en tienne toujours compte? En somme, elle ne tiendrais compte que des 9 premiers caractères du nom de la feuille qui eux ne changent jamais.

Merci d'avance pour votre aide et excellent après-midi ensoleillée.
 

youky(BJ)

XLDnaute Barbatruc
Bonjour Luke,
Une boucle sur tous les onglets
Bruno
VB:
Sub test()
For k = 1 To Sheets.Count
If Left(Sheets(k).Name, 10) = "DO55_GUIX_" Then _
Sheets(k).Activate: Exit For
Next
End Sub
 

youky(BJ)

XLDnaute Barbatruc
Re:
Effectivement Patrice a raison,
on peut aisément se passer d'activer un onglet, il suffit que la macro sache à quelle page on s'adresse.
Par contre dans mes macros je n'utilise pas le nom de l'onglet mais le codename qui lui ne change pas même si l'onglet est renommé.
ici on vois que l'onglet nommé TOTO son codename est Feuil2
A voir si l'onglet en question est renommé ou supprimé…..
Bruno
upload_2018-7-31_19-46-50.png
 

luke3300

XLDnaute Impliqué
Bonsoir à tous,

Merci pour votre temps et votre aide.

Patrice33740 & YoukY, je ne connais rien au VBA. La macro a été faite avec l'aide du forum et je n'ai fait que l'utiliser.
Donc il n'est pas souvent utile d'activer un onglet mais comme le code est fait ainsi ... je m'en sers ainsi.
Par contre pourquoi je n'utilise pas le CodeName? Là je peux répondre ... les onglets nommés "DO55_GUIX_XXXX" sont des onglets que l'on vient copier au départ d'autres fichiers et donc les CodeName ne sont jamais les-mêmes. Parfois ce sera la Feuil5, la 6 , la 7 ou plus encore. Utiliser le nom dans ce cas-si me semblait plus logique.

Je teste ta solution Youky et vous tiens au courant :)
Très bonne soirée
 

Patrice33740

XLDnaute Occasionnel
Patrice33740 & YoukY, je ne connais rien au VBA. La macro a été faite avec l'aide du forum et je n'ai fait que l'utiliser.
Donc il n'est pas souvent utile d'activer un onglet mais comme le code est fait ainsi ... je m'en sers ainsi.
Tout d'abord je n'ai pas dit « pas souvent utile » mais « très rarement nécessaire », si tu préfères je dirais ce qu'on doit s'en passer dans 99,999% des cas.

Ensuite, tu ne nous donnes pas le code complet de ta macro : il faut toujours situer le problème dans son contexte sinon on pédale pour des prunes.

C'est pas parce la macro fonctionne qu'elle est bien conçue, la preuve elle te pose problème !
Si l'onglet est une copie provenant d'autres classeurs, effectuée par macro, la solution est là.
 

luke3300

XLDnaute Impliqué
Bonjour le forum, Youky, Patrice33740,

Impeccable, cela fonctionne à merveille :) merci beaucoup.

Agréable journée;)
 

Discussions similaires


Haut Bas