Renommer automatiquement les feuillets excel
Résolu/Fermé
arsfle
Messages postés
7
Date d'inscription
lundi 9 février 2009
Statut
Membre
Dernière intervention
23 juin 2009
-
26 févr. 2009 à 10:33
Nico - 26 févr. 2009 à 12:41
Nico - 26 févr. 2009 à 12:41
A voir également:
- Renommer feuille excel automatiquement
- Liste déroulante excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Renommer plusieurs fichiers - Guide
- Formule excel - Guide
- Si et excel - Guide
5 réponses
Bonjour
Si le nom à appliquer à chaque feuille se trouve dans la cellule L2 de chacune, créer une macro :
Outils
Macro
Lui donner un nom : Noms_Feuilles
Créer
Copier les lignes ci-dessous à la place des lignes affichées automatiquement :
Sub Noms_Feuilles()
For Each sh In Sheets
sh.Select
If Range("L2") <> "" Then
ActiveSheet.Name = Range("L2")
End If
Next sh
End Sub
fermer Vba
Quant toutes les feuilles sont prêtes avec leur nom en L2
Outils
Macro
Choisir Noms_Feuilles
Exécuter
Si le nom à appliquer à chaque feuille se trouve dans la cellule L2 de chacune, créer une macro :
Outils
Macro
Lui donner un nom : Noms_Feuilles
Créer
Copier les lignes ci-dessous à la place des lignes affichées automatiquement :
Sub Noms_Feuilles()
For Each sh In Sheets
sh.Select
If Range("L2") <> "" Then
ActiveSheet.Name = Range("L2")
End If
Next sh
End Sub
fermer Vba
Quant toutes les feuilles sont prêtes avec leur nom en L2
Outils
Macro
Choisir Noms_Feuilles
Exécuter
wilfried_42
Messages postés
907
Date d'inscription
mardi 19 août 2008
Statut
Contributeur
Dernière intervention
8 décembre 2009
243
26 févr. 2009 à 12:05
26 févr. 2009 à 12:05
Bonjour
j'ai une petite question quels sont les noms de tes feuilles dans ton fichier modèle, si elles ont deja un nom de mois, on risque d'avoir des problèmes
de plus, il est nécessaire que dans les autres feuilles il n'y ai rien en L2
en reprenant la macro de Nico
j'ai une petite question quels sont les noms de tes feuilles dans ton fichier modèle, si elles ont deja un nom de mois, on risque d'avoir des problèmes
de plus, il est nécessaire que dans les autres feuilles il n'y ai rien en L2
en reprenant la macro de Nico
Sub Noms_Feuilles() For Each sh In Sheets if sh.Range("L2") <> "" Then sh.name = "Nico" & sh.index Next sh for each sh in sheets if sh.name = "Nico" & sh.index then sh.nam = sh.range("L2") next End Sub
Je suis d'accord avec la première partie de ta macro, si des feuilles portent déjà un nom de mois,
mais je ne comprends pas la suite et ta remarque sur la cellule L2 des autre feuilles.
mais je ne comprends pas la suite et ta remarque sur la cellule L2 des autre feuilles.
wilfried_42
Messages postés
907
Date d'inscription
mardi 19 août 2008
Statut
Contributeur
Dernière intervention
8 décembre 2009
243
26 févr. 2009 à 12:29
26 févr. 2009 à 12:29
re:
simplement, qu'il met les mois en L2, si on teste ces mois en testant simplement s'il y a une valeur en L2 : if range("L2")>""
il ne faudrait pas qu'il y ait des valeur en L2 dans d'autres feuille, sinon le test devra etre fait d'un autre maniere peut etre en traitant l'erreur
Datevalue("01/" & range("L2") & "/2000") renvoie une erreur si dans L2 il y a autre chose qu'un mois
simplement, qu'il met les mois en L2, si on teste ces mois en testant simplement s'il y a une valeur en L2 : if range("L2")>""
il ne faudrait pas qu'il y ait des valeur en L2 dans d'autres feuille, sinon le test devra etre fait d'un autre maniere peut etre en traitant l'erreur
Datevalue("01/" & range("L2") & "/2000") renvoie une erreur si dans L2 il y a autre chose qu'un mois
Sub Noms_Feuilles() For Each sh In Sheets on error goto suite if isdate(datevalue("01/" & sh.Range("L2") & "/2000")) Then sh.name = "Nico" & sh.index suite: on error goto 0 Next sh for each sh in sheets if sh.name = "Nico" & sh.index then sh.nam = sh.range("L2") next End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'avais compris qu'il avait 1 classeur par client et dans chaque classeur, 12 feuilles correspondant aux 12 mois mais rangées différemment suivant le client.
Dans chacune des feuilles, on trouve en L2 le nom du mois que l'on doit donner à la feuille.
Dans ma boucle, ma feuille active change à chaque feuille et utilise la valeur 'locale' de L2 et donc aucune confusion possible.
A moins que j'aie mal compris ce que veut arsfle ?
Suite à ta remarque sur les feuilles pouvant déjà porter un nom de mois, je modifierait la macro comme suit :
Sub Noms_Feuilles()
For Each sh In Sheets
sh.Select
ActiveSheet.Name = "Tmp" & ActiveSheet.Name
Next sh
For Each sh In Sheets
sh.Select
If Range("L2") <> "" Then
ActiveSheet.Name = Range("L2")
End If
Next sh
End Sub
Dans chacune des feuilles, on trouve en L2 le nom du mois que l'on doit donner à la feuille.
Dans ma boucle, ma feuille active change à chaque feuille et utilise la valeur 'locale' de L2 et donc aucune confusion possible.
A moins que j'aie mal compris ce que veut arsfle ?
Suite à ta remarque sur les feuilles pouvant déjà porter un nom de mois, je modifierait la macro comme suit :
Sub Noms_Feuilles()
For Each sh In Sheets
sh.Select
ActiveSheet.Name = "Tmp" & ActiveSheet.Name
Next sh
For Each sh In Sheets
sh.Select
If Range("L2") <> "" Then
ActiveSheet.Name = Range("L2")
End If
Next sh
End Sub