changer nom onglet par son codename dans macro

charette63

XLDnaute Occasionnel
bonsoir à toutes et tous,

ci dessous, un bout de code crée via l'éditeur vba et qui fonctionne très bien,

Code:
Sheets("Dupont  A").Select
    ActiveWindow.ScrollWorkbookTabs Position:=xlLast
    Sheets(Array("Dupont  A", "Dupont  B", "Dupont  C", "Dupont  D", "Dupont  E", _
        "Dupont  F", "Dupont  G", "Dupont  H", "Dupont  I", "Dupont  J", "Dupont  K", _
        "Dupont  L", "Dupont  M", "Dupont  N", "Dupont  O", "Dupont  P", "Dupont  Q", "Dupont  R", _
        "Dupont  S", "Dupont  T", "Dupont  U", "Dupont  V", "Dupont  W", "Dupont  X", "Dupont  Y", _
        "Dupont  Z",  "Remplacement 1", "Remplacement 2", _
        "Remplacement 3", "Remplacement 4", "Remplacement 5", "Remplacement 6")).Select 
_
        Replace:=False



pour des raisons pratiques, j'ai modifier, avec l'aide d'Hippolite, les noms d'onglets par leur numéro d'emplacement dans le classeur. Jusque là, nickel
Code:
Sheets(2).Select
    ActiveWindow.ScrollWorkbookTabs Position:=xlLast
    Sheets(Array(2, 3, 4, 5, 6, _
        7, 8, 9, 10, 11, 12, _
        13, 14, 15, 16, 17, 18, 19, _
        20, 21, 22, 23, 24, 25, 26)). _
        Select
    Sheets(2).Activate
    Sheets(Array(27, 28, 29, 30, _
        31, 32, 33, 34)).Select _
        Replace:=False

après quelques utilisations de mon classeur, il s'avere que j'ai des feuilles qui peuvent s'intercaler entre d'autres, et qui ne doivent pas être modifiées par la macro. La solution, ce serait de nommer les feuilles dans la macro par le biais de leur codename.
J'ai essayé plusieurs "solutions", mais je n'arrive pas à trouver la bonne syntaxe.

Code:
Feuil16.Select
    ActiveWindow.ScrollWorkbookTabs Position:=xlLast
    Sheets(Array(Feuil2, Feuil3, Feuil4, Feuil5, _
        Feuil6, Feuil7, Feuil8, Feuil9, Feuil10, Feuil11, Feuil16, _
        Feuil12, Feuil13, Feuil14, Feuil15, Feuil17, Feuil18, Feuil19, _
        Feuil20, Feuil21, Feuil22, Feuil23, Feuil24, Feuil25, Feuil26)). _
        Select
    Feuil16.Activate
    Sheets(Array(Feuil27, Feuil28, Feuil29, Feuil30, _
        Feuil31, Feuil32, Feuil33, Feuil34)).Select _
        Replace:=False

Pourriez-vous m'aider

Merci
Code:
 
Dernière édition:

Etienne2323

XLDnaute Impliqué
Re : changer nom onglet par son codename dans macro

Salut charette63,
voici une possibilité :

VB:
Option Explicit

Sub Test()

Dim FT As Worksheet
Dim Le_Nom As String
Dim Le_Numero As Integer

For Each FT In Worksheets
    Le_Nom = FT.CodeName
    Le_Numero = Mid(Le_Nom, 6, Len(Le_Nom) - 5)
    FT.Name = Le_Numero
Next FT

End Sub

Cordialement,

Étienne
 

charette63

XLDnaute Occasionnel
Re : changer nom onglet par son codename dans macro

Bonjour Etienne, (chez vous, il fait jour je pense)

Merci de t'interresser à mon problème.

Le code que tu m'as communiqué à changé le nom de mes onglets par le numero de leur codename, ce n'est pas l'objet de ma demande. Le nom de l'onglet varie suivant la valeur (alphabétique) d'une cellule de la feuille.

Je recherche juste la bonne syntaxe pour remplacer les noms ("Dupont A", "Dupont B" , etc...) par le codename de la feuille (Feuil1, Feuil2, ...etc) dans le bout de code que j'ai renseigné dans mon premier poste.

Cordialement

Thierry
 

Etienne2323

XLDnaute Impliqué
Re : changer nom onglet par son codename dans macro

Salut Thierry,
encore plus simple.

Essaye ceci :

Code:
Option Explicit

Sub Test()

Dim FT As Worksheet

For Each FT In Worksheets
    FT.Name = FT.CodeName
Next FT

End Sub

Cordialement,

Étienne
 

charette63

XLDnaute Occasionnel
Re : changer nom onglet par son codename dans macro

Bonjour Etienne,

le code que tu me proposes change le nom des onglets par leur codename, désolé, ce n'est pas ce que je recherche.

Le nom de l'onglet ne doit pas etre modifié.
Le bout de code que j'aimerais modifié est encodé par le nom de l'onglet (premier exemple dans mon premier post),
la macro dans laquelle ce bout de code est inséré fonctionne également avec l'appel des feuilles sous leur numéro d'emplacement dans le classeur (deuxieme exemple dans mon premier post)
et j'aimerais que les feuilles pour lesquelles la macro doit s'activer soient appelées par leur codename (quelque chose dans le genre de mon troisième exemple).
Le problème est que je sais pas la syntaxe (faut-il que "Feuil1, Feuil2,...etc" soient entre parenthèses, entre guillemets, ou autre ???)

Mes remerciements de te tracasser pour moi
 

charette63

XLDnaute Occasionnel
Re : changer nom onglet par son codename dans macro

Bonjour Pierrot,

mille excuses mon bon Monsieur, effectivement j'ai réouvert le post et j'ai vu. Comme j'avais opté pour la solution du numéro d'emplacement de l'onglet, ça m'est complètement sorti de la tête.

Ça marche nickel

merci bien
 

charette63

XLDnaute Occasionnel
Re : changer nom onglet par son codename dans macro

dans la foulée, est il possible d'effectuer le même manip dans une liaison
quand je change ceci:
='[horaire nursing 01 template.xls]Dupont A'!$O$37+'[horaire nursing 01 template.xls]Dupont A'!$O$38
en cela:
='[horaire nursing 01 template.xls]Feuil2.Name'!$O$37+'[horaire nursing 01 template.xls]Feuil2.Name'!$O$38

j'ai un message d'erreur "votre formule contient une reference externe non valide"

y a-t-il un moyen de remplacer le nom de l'onglet par le codename de la feuille

merci
 

Pierrot93

XLDnaute Barbatruc
Re : changer nom onglet par son codename dans macro

Bonjour,

A ma connaissance, le "codename" d'une feuille est propre au vba, et ne peut être utilisé dans une formule / fonction de feuille de calcul...

bonne journée
@+
 

Statistiques des forums

Discussions
314 450
Messages
2 109 729
Membres
110 553
dernier inscrit
loic55