Renommer une feuille en VBA
Résolu
Bonjour,
Au cours d'une macro je me trouve sur une feuille dont le titre en A2 "Edition du 12/05/2017". Pour d'autres besoins, j'en ai extrait dans la cellule H1 la date avec la formule "droite" et j'obtiens "12/05/2017. Je voudrais renommer cette feuille dont le nom générique est"Feuil1" en la date sous la forme "12-05-17". J'ai fait un copier/coller vers la cellule H2, collage spécial "valeur". Et j'obtiens "12/05/2017"; Comme il n'est pas possible d'avoir un "/" dans le nom de la feuille, j'ai pu mettre le formar Date "jj-mm-yy" qui s'affiche parfaitement. Mais la structure est toujours "12/05/17" toujours incompatible. Comment , en VBA, renommer la feuille pour avoir cette présentation? le code:
'renomme la feuille de la date du téléchargement
With Range("A2")
.Parent.Name = Format(Split(.Value, "Edition du")(1), "dd-mm-yy")
End With
ne fonctionne pas; et non plus:
"activeSheet.Name(H2).Value"
par exemple, refusé.
Merci de m'aider
Au cours d'une macro je me trouve sur une feuille dont le titre en A2 "Edition du 12/05/2017". Pour d'autres besoins, j'en ai extrait dans la cellule H1 la date avec la formule "droite" et j'obtiens "12/05/2017. Je voudrais renommer cette feuille dont le nom générique est"Feuil1" en la date sous la forme "12-05-17". J'ai fait un copier/coller vers la cellule H2, collage spécial "valeur". Et j'obtiens "12/05/2017"; Comme il n'est pas possible d'avoir un "/" dans le nom de la feuille, j'ai pu mettre le formar Date "jj-mm-yy" qui s'affiche parfaitement. Mais la structure est toujours "12/05/17" toujours incompatible. Comment , en VBA, renommer la feuille pour avoir cette présentation? le code:
'renomme la feuille de la date du téléchargement
With Range("A2")
.Parent.Name = Format(Split(.Value, "Edition du")(1), "dd-mm-yy")
End With
ne fonctionne pas; et non plus:
"activeSheet.Name(H2).Value"
par exemple, refusé.
Merci de m'aider
7 réponses
-
J'ai fait une erreur au dernier paragraphe du point 5) ; je le corrige :
Est-ce toujours la feuille active (qui n'est pas forcément toujours
la même feuille) ? si oui, utiliser :
Worksheets(Worksheets.Count).Name = Format([H1], "dd-mm-yy")
dans cette instruction, la cellule [H1] est celle de la feuille active ;
c'est possible de la préciser comme indiqué ci-dessous, mais c'est
en fait inutile puisque sans référence explicite d'une feuille, ça lit
une référence de cellule sur la feuille active.
Worksheets(Worksheets.Count).Name = Format(ActiveSheet.[H1], "dd-mm-yy")
Je conseille donc la première formule, qui est à la fois plus courte
et plus simple à lire.