Renommer des onglets au noms variables d'un autre fichier que celui de la macro

LeGrem

XLDnaute Nouveau
Bonjour,

Après quelques heures à chercher sur internet je fait appel à vos connaissances.

Je cherche à renomer des onglets d’un fichier "Reporting" qui comporte un onglet par semaine pour le mois (W36 pour la semaine 36, W37 ....)
Et cela se fait à partir un autre fichier "macro"

Comme les onglets à renommer doivent changer de nom tous les mois, donc j'ai trouvé qu'il faut que je les appelent pas leur Sheet Name (j’ai excel en anglais) et non le nom affiché sur l'onglet : W36, W37 ...
Le nom des onglets à définir se trouvent dans un onglet "Stats" (cette information est présente dans le fichier "reporting") et je veux donc me servir de cette information des cellules que j'ai nommé en "semaine1" / "semaine2" / ...

Le seule morceau de code qui n'a pas planté est le suivant mais il me renomme l'onglet de la macro et non celui du fichier "reporting"

Code:
Sub test()
Fichier_stats = ThisWorkbook.Sheets("Macro").Range("Fich_stats").Value
nom_fich_stats = Right(Fichier_stats, InStr(StrReverse(Fichier_stats), "\"))
nom_fich_stats = Right(nom_fich_stats, Len(nom_fich_stats) - 1)
Nom_Macro = ActiveWorkbook.Name

Workbooks.Open Filename:=Fichier_stats, Local:=True

Sheet4.Name = Sheets("Stats").Range("semaine1").Value 'pour info Sheet4 = Sheet4 (W36) et ici il prend bien le nom voulu pour le test : W40

J'ai essayé de définir le Sheet4 par cela mais ça me met w1="" lorsque je survole l'erreur

Code:
    Dim w1 As String
    w1 = nom_fich_stats.Sheet4

Merci de vos lumières.
 

Dranreb

XLDnaute Barbatruc
Re : Renommer des onglets au noms variables d'un autre fichier que celui de la macro

Bonjour.
Pourquoi ne pas accéder aux feuilles par leurs positions dans la collections Workseets ?
Elle est à spécifier entre parenthèses comme le nom.
À+
 

pierrejean

XLDnaute Barbatruc
Re : Renommer des onglets au noms variables d'un autre fichier que celui de la macro

Bonjour LeGrem

et bienvenue sur XLD

Vois si tu peux t'inspirer de ceci

Code:
Sub renomme()
Set Fm = ThisWorkbook
Fichier_stats = "fichier_semaines"
Workbooks.Open Filename:=Fichier_stats, Local:=True
Set FS = Workbooks(Fichier_stats)
For n = 1 To FS.Sheets.Count
 FS.Sheets(n).Name = Fm.Sheets("Feuil1").Range("semaine_" & n)
Next n
End Sub

Edit: Salut Dranreb
 

LeGrem

XLDnaute Nouveau
Re : Renommer des onglets au noms variables d'un autre fichier que celui de la macro

Bonjour,

J'ai testé 2 choses différentes et ça bloque, j'ai un peu de mal avec les boucles

Code:
Sub test()
Fichier_stats = ThisWorkbook.Sheets("Macro").Range("Fich_stats").Value
nom_fich_stats = Right(Fichier_stats, InStr(StrReverse(Fichier_stats), "\"))
nom_fich_stats = Right(nom_fich_stats, Len(nom_fich_stats) - 1)

Set Fm = ThisWorkbook
nom_fich_stats = "fichier_semaines"
Workbooks.Open Filename:=Fichier_stats, Local:=True
Set FS = Workbooks(nom_fich_stats) ' *** ça bloque ici **** Subcript out of range
For n = 1 To FS.Sheets.Count
 FS.Sheets(n).Name = FS.Sheets("Stats").Range("semaine_" & n)
Next n

Et cela
Code:
Sub test()
Fichier_stats = ThisWorkbook.Sheets("Macro").Range("Fich_stats").Value
nom_fich_stats = Right(Fichier_stats, InStr(StrReverse(Fichier_stats), "\"))
nom_fich_stats = Right(nom_fich_stats, Len(nom_fich_stats) - 1)

Set Fm = ThisWorkbook
Workbooks.Open Filename:=Fichier_stats, Local:=True
Set FS = Workbooks(nom_fich_stats)
For n = 1 To FS.Sheets.Count
 FS.Sheets(n).Name = FS.Sheets("Stats").Range("semaine_" & n) ' ****ça bloque ici *** application defined or object defined error
Next n

A noté que j'ai 2 onglets dans le fichier statistiques qu'il ne fait pas renommer

Pour info
Fichier_stats c'est le chemin réseau complet de mon fichier
nom_fich_stats sert à tronquer le chemin réseau pour ne garder que le nom du fichier
 

Statistiques des forums

Discussions
312 243
Messages
2 086 550
Membres
103 245
dernier inscrit
gdesign