Dans un classeur j'ai 95 feuilles (nomm=C3=A9es Feuil1 =C3=A0 feuil95)
Sur le forum j'ai trouv=C3=A9 comment enregistrer les noms des feuilles en =
fonctions de valeurs contenues dans une cellule d'une 96=C3=A8me feuille.
Cette 96=C3=A8me feuille contenant une liste de tous les noms =C3=A0 appliq=
uer
Mais peut on d=C3=A9finir le nom de chaque feuille en utilisant le contenu =
de la cellule A1 et A2 de cette m=C3=AAme feuille
=20
Par exemple la premi=C3=A8re feuille se nommera M13F - Hoenheim
la deuxi=C3=A8me M13F - SSHB
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichD
Bonjour, Dans mon exemple : "Feuil4" est le nom de la 96e feuille du classeur et les noms des feuilles sont dans la plage A1 à A95. À toi d'adapter si le nom de la feuille ou le nom des feuilles est situé dans une autre plage de cellules. Au lieu d'utiliser le nom de "Feuil4", tu peux utiliser l'index. With worksheets(96) .... '---------------------------- Sub Nommer_Les_Feuilles() Dim Sh As Worksheet, A As Long With Worksheets("Feuil4") For Each Sh In ThisWorkbook.Worksheets If Sh.Name <> .Name Then A = A + 1 Sh.Name = .Range("A" & A) End If Next End With End Sub '---------------------------- MichD
Bonjour,
Dans mon exemple : "Feuil4" est le nom de la 96e feuille du classeur et
les noms des feuilles sont dans la plage A1 à A95.
À toi d'adapter si le nom de la feuille ou le nom des feuilles est situé
dans une autre plage de cellules. Au lieu d'utiliser le nom de "Feuil4",
tu peux utiliser l'index. With worksheets(96) ....
'----------------------------
Sub Nommer_Les_Feuilles()
Dim Sh As Worksheet, A As Long
With Worksheets("Feuil4")
For Each Sh In ThisWorkbook.Worksheets
If Sh.Name <> .Name Then
A = A + 1
Sh.Name = .Range("A" & A)
End If
Next
End With
Bonjour, Dans mon exemple : "Feuil4" est le nom de la 96e feuille du classeur et les noms des feuilles sont dans la plage A1 à A95. À toi d'adapter si le nom de la feuille ou le nom des feuilles est situé dans une autre plage de cellules. Au lieu d'utiliser le nom de "Feuil4", tu peux utiliser l'index. With worksheets(96) .... '---------------------------- Sub Nommer_Les_Feuilles() Dim Sh As Worksheet, A As Long With Worksheets("Feuil4") For Each Sh In ThisWorkbook.Worksheets If Sh.Name <> .Name Then A = A + 1 Sh.Name = .Range("A" & A) End If Next End With End Sub '---------------------------- MichD
Jacquouille
On devient très forts ..... une réponse sans question posée. -)) Jacques " Le vin est au repas ce que le parfum est à la femme." . "MichD" a écrit dans le message de groupe de discussion : qslbk0$eb9$ Bonjour, Dans mon exemple : "Feuil4" est le nom de la 96e feuille du classeur et les noms des feuilles sont dans la plage A1 à A95. À toi d'adapter si le nom de la feuille ou le nom des feuilles est situé dans une autre plage de cellules. Au lieu d'utiliser le nom de "Feuil4", tu peux utiliser l'index. With worksheets(96) .... '---------------------------- Sub Nommer_Les_Feuilles() Dim Sh As Worksheet, A As Long With Worksheets("Feuil4") For Each Sh In ThisWorkbook.Worksheets If Sh.Name <> .Name Then A = A + 1 Sh.Name = .Range("A" & A) End If Next End With End Sub '---------------------------- MichD
On devient très forts ..... une réponse sans question posée. -))
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD" a écrit dans le message de groupe de discussion :
qslbk0$eb9$1@gioia.aioe.org...
Bonjour,
Dans mon exemple : "Feuil4" est le nom de la 96e feuille du classeur et
les noms des feuilles sont dans la plage A1 à A95.
À toi d'adapter si le nom de la feuille ou le nom des feuilles est situé
dans une autre plage de cellules. Au lieu d'utiliser le nom de "Feuil4",
tu peux utiliser l'index. With worksheets(96) ....
'----------------------------
Sub Nommer_Les_Feuilles()
Dim Sh As Worksheet, A As Long
With Worksheets("Feuil4")
For Each Sh In ThisWorkbook.Worksheets
If Sh.Name <> .Name Then
A = A + 1
Sh.Name = .Range("A" & A)
End If
Next
End With
On devient très forts ..... une réponse sans question posée. -)) Jacques " Le vin est au repas ce que le parfum est à la femme." . "MichD" a écrit dans le message de groupe de discussion : qslbk0$eb9$ Bonjour, Dans mon exemple : "Feuil4" est le nom de la 96e feuille du classeur et les noms des feuilles sont dans la plage A1 à A95. À toi d'adapter si le nom de la feuille ou le nom des feuilles est situé dans une autre plage de cellules. Au lieu d'utiliser le nom de "Feuil4", tu peux utiliser l'index. With worksheets(96) .... '---------------------------- Sub Nommer_Les_Feuilles() Dim Sh As Worksheet, A As Long With Worksheets("Feuil4") For Each Sh In ThisWorkbook.Worksheets If Sh.Name <> .Name Then A = A + 1 Sh.Name = .Range("A" & A) End If Next End With End Sub '---------------------------- MichD
Fredo(67)
Salut MichD Voilà comment j'ai adapté ta macro Sub Nommer_Les_Feuilles() Dim Sh As Worksheet, A As Long With Worksheets("Feuil1") For Each Sh In ThisWorkbook.Worksheets If Sh.Name <> .Name Then A = A + 1 Sh.Name = .Range("CB4" & "-" & "cb1") End If Next End With End Sub En fait la première partie du nom de la feuille est en CB4 puis en CB1 pour donner un truc du genre M13F - Hoenheim Si j'ai bien compris ta macro, le "A" sert à incrémenter une num érotation ? c'est ca ?
Salut MichD
Voilà comment j'ai adapté ta macro
Sub Nommer_Les_Feuilles()
Dim Sh As Worksheet, A As Long
With Worksheets("Feuil1")
For Each Sh In ThisWorkbook.Worksheets
If Sh.Name <> .Name Then
A = A + 1
Sh.Name = .Range("CB4" & "-" & "cb1")
End If
Next
End With
End Sub
En fait la première partie du nom de la feuille est en CB4 puis en CB1
pour donner un truc du genre M13F - Hoenheim
Si j'ai bien compris ta macro, le "A" sert à incrémenter une num érotation ? c'est ca ?
Salut MichD Voilà comment j'ai adapté ta macro Sub Nommer_Les_Feuilles() Dim Sh As Worksheet, A As Long With Worksheets("Feuil1") For Each Sh In ThisWorkbook.Worksheets If Sh.Name <> .Name Then A = A + 1 Sh.Name = .Range("CB4" & "-" & "cb1") End If Next End With End Sub En fait la première partie du nom de la feuille est en CB4 puis en CB1 pour donner un truc du genre M13F - Hoenheim Si j'ai bien compris ta macro, le "A" sert à incrémenter une num érotation ? c'est ca ?
Fredo(67)
Mais je pense ne pas avoir été clair dans mes explication Chaque onglet possède en CB4 et CB1 les valeurs qui doivent être utilisées pour nommer les onglets respectifs
Mais je pense ne pas avoir été clair dans mes explication
Chaque onglet possède en CB4 et CB1 les valeurs qui doivent être utilisées pour nommer les onglets respectifs
Mais je pense ne pas avoir été clair dans mes explication Chaque onglet possède en CB4 et CB1 les valeurs qui doivent être utilisées pour nommer les onglets respectifs
MichD
Le 09/12/19 à 08:51, Fredo(67) a écrit :
Mais je pense ne pas avoir été clair dans mes explication Chaque onglet possède en CB4 et CB1 les valeurs qui doivent être utilisées pour nommer les onglets respectifs
Tu veux dire qu'une partie du nom de la feuille est en CB4 et que la seconde partie du nom de la feuille est en CB1 sur chacune des feuilles de calcul? Que veux-tu faire? Concaténer le contenu de la cellule CB4 et CB1 pour former le nom de la feuille, et ce pour chacune des feuilles du classeur ? '------------------------------------ Sub Nommer_Les_Feuilles() Dim Sh As Worksheet For Each Sh In ThisWorkbook.Worksheets With sh .name = .range("CB4") & .range("CB1") Next End With End Sub '------------------------------------ La macro ne tient pas compte des erreurs qui pourraient être provoquées par la longueur du nom de plus de 31 caractères, ni des caractères défendus dans la chaîne de caractères du nom d'une feuille comme : / : * ? [ ] Évidemment, chaque nom des feuilles doit être unique. MichD
Le 09/12/19 à 08:51, Fredo(67) a écrit :
Mais je pense ne pas avoir été clair dans mes explication
Chaque onglet possède en CB4 et CB1 les valeurs qui doivent être utilisées pour nommer les onglets respectifs
Tu veux dire qu'une partie du nom de la feuille est en CB4 et que la
seconde partie du nom de la feuille est en CB1 sur chacune des feuilles
de calcul? Que veux-tu faire? Concaténer le contenu de la cellule CB4 et
CB1 pour former le nom de la feuille, et ce pour chacune des feuilles du
classeur ?
'------------------------------------
Sub Nommer_Les_Feuilles()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Worksheets
With sh
.name = .range("CB4") & .range("CB1")
Next
End With
End Sub
'------------------------------------
La macro ne tient pas compte des erreurs qui pourraient être provoquées
par la longueur du nom de plus de 31 caractères, ni des caractères
défendus dans la chaîne de caractères du nom d'une feuille comme :
/ : * ? [ ]
Évidemment, chaque nom des feuilles doit être unique.
Mais je pense ne pas avoir été clair dans mes explication Chaque onglet possède en CB4 et CB1 les valeurs qui doivent être utilisées pour nommer les onglets respectifs
Tu veux dire qu'une partie du nom de la feuille est en CB4 et que la seconde partie du nom de la feuille est en CB1 sur chacune des feuilles de calcul? Que veux-tu faire? Concaténer le contenu de la cellule CB4 et CB1 pour former le nom de la feuille, et ce pour chacune des feuilles du classeur ? '------------------------------------ Sub Nommer_Les_Feuilles() Dim Sh As Worksheet For Each Sh In ThisWorkbook.Worksheets With sh .name = .range("CB4") & .range("CB1") Next End With End Sub '------------------------------------ La macro ne tient pas compte des erreurs qui pourraient être provoquées par la longueur du nom de plus de 31 caractères, ni des caractères défendus dans la chaîne de caractères du nom d'une feuille comme : / : * ? [ ] Évidemment, chaque nom des feuilles doit être unique. MichD
MichD
Oups! Désolé, La macro devrait plutôt s'écrire de cette manière : '------------------------------------ Sub Nommer_Les_Feuilles() Dim Sh As Worksheet For Each Sh In ThisWorkbook.Worksheets With sh .name = .range("CB4") & .range("CB1") End With Next End Sub '------------------------------------ MichD
Oups! Désolé,
La macro devrait plutôt s'écrire de cette manière :
'------------------------------------
Sub Nommer_Les_Feuilles()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Worksheets
With sh
.name = .range("CB4") & .range("CB1")
End With
Next
Oups! Désolé, La macro devrait plutôt s'écrire de cette manière : '------------------------------------ Sub Nommer_Les_Feuilles() Dim Sh As Worksheet For Each Sh In ThisWorkbook.Worksheets With sh .name = .range("CB4") & .range("CB1") End With Next End Sub '------------------------------------ MichD
Fredo(67)
Le lundi 9 décembre 2019 16:55:33 UTC+1, MichD a écrit :
Oups! Désolé, La macro devrait plutôt s'écrire de cette manière : '------------------------------------ Sub Nommer_Les_Feuilles() Dim Sh As Worksheet For Each Sh In ThisWorkbook.Worksheets With sh .name = .range("CB4") & .range("CB1") End With Next End Sub '------------------------------------ MichD
C'est tout à fait ça tu as compris ma question. Mais la macro me renvoie une erreur au niveau des .Name..... "la méthode name de l'objet _worksheet a échoué" En clair cela ne lui plait pas..... lol
Le lundi 9 décembre 2019 16:55:33 UTC+1, MichD a écrit :
Oups! Désolé,
La macro devrait plutôt s'écrire de cette manière :
'------------------------------------
Sub Nommer_Les_Feuilles()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Worksheets
With sh
.name = .range("CB4") & .range("CB1")
End With
Next
End Sub
'------------------------------------
MichD
C'est tout à fait ça
tu as compris ma question.
Mais la macro me renvoie une erreur au niveau des .Name.....
Le lundi 9 décembre 2019 16:55:33 UTC+1, MichD a écrit :
Oups! Désolé, La macro devrait plutôt s'écrire de cette manière : '------------------------------------ Sub Nommer_Les_Feuilles() Dim Sh As Worksheet For Each Sh In ThisWorkbook.Worksheets With sh .name = .range("CB4") & .range("CB1") End With Next End Sub '------------------------------------ MichD
C'est tout à fait ça tu as compris ma question. Mais la macro me renvoie une erreur au niveau des .Name..... "la méthode name de l'objet _worksheet a échoué" En clair cela ne lui plait pas..... lol
MichD
Si tu as une erreur, cela signifie que le nom de l'onglet de la feuille ne remplit pas une des conditions suivantes déjà citées dans le message précédent. Il n'y a pas d'autres raisons possibles. La macro ne tient pas compte des erreurs qui pourraient être provoquées par la longueur du nom de plus de 31 caractères, ni des caractères défendus dans la chaîne de caractères du nom d'une feuille comme : / : * ? [ ] Évidemment, chaque nom des feuilles doit être unique. MichD
Si tu as une erreur, cela signifie que le nom de l'onglet de la feuille
ne remplit pas une des conditions suivantes déjà citées dans le message
précédent. Il n'y a pas d'autres raisons possibles.
La macro ne tient pas compte des erreurs qui pourraient être provoquées
par la longueur du nom de plus de 31 caractères, ni des caractères
défendus dans la chaîne de caractères du nom d'une feuille comme :
/ : * ? [ ]
Évidemment, chaque nom des feuilles doit être unique.
Si tu as une erreur, cela signifie que le nom de l'onglet de la feuille ne remplit pas une des conditions suivantes déjà citées dans le message précédent. Il n'y a pas d'autres raisons possibles. La macro ne tient pas compte des erreurs qui pourraient être provoquées par la longueur du nom de plus de 31 caractères, ni des caractères défendus dans la chaîne de caractères du nom d'une feuille comme : / : * ? [ ] Évidemment, chaque nom des feuilles doit être unique. MichD
Fredo(67)
Salut, vu que je n'ai aucun caractère "spécial", je vais me penser sur l a longueur des noms....
Salut,
vu que je n'ai aucun caractère "spécial", je vais me penser sur l a longueur des noms....