Automatiser des noms d'onglets selon une cellule/ ou liste

Bonjour à tous,

je souhaite créer une macro qui me permettrait d'automatiser un certain nombre d'onglets (pas la totalité) selon une liste déjà présente dans un onglet différent, ou dans une cellule correspondant à l'onglet.

Je dois assurer des suivis de tournées d'artistes, et les villes (nom d'onglet) changent à chaque nouvelle tournée. Afin de m'éviter de renomer mes onglets manuellement (une quarantaine en moyenne) j'aimerai qu'à chaque nouveau suivi ceci se fasse automatique.

En gros j'aimerai que mon onglet porte le nom de la cellule A5 qui lui est propre. La cellule A5 comportant le nom de la ville en question, mais celle-ci est en croisée dynamique avec une liste deja présente sur un autre onglet (EXPORT DATE) dans le tableau. Je crois que cela complique la macro. Il y a donc une seconde source dans cet onglet EXPORT DATE. Sachant que j'aimerai que cette démarche s'étende seulement de l'onglet C à l'onglet AN (qui se suivent les uns les autres dans le tableau)

Quelle macro pourrait être la plus adaptée, sachant que je suis encore très novice, et que mes nombreux essais ne sont pas concluants.

Je joins le tableau pour que mon explication soit illustrée,

En vous remerciant d'avance pour vos conseils,

Bonjour,

dans votre fichier la cellule A5 de tous les onglets (C à AN) est égal à "LA BAS"

on ne peut pas renommer un onglet du même nom qu'un autre onglet.

j'ai modifié la plage Sheets("EXPORTDATES").Range("C3:C40") par LA BAS 1 à LA BAS 38

Sub RenommeOnglet()
Set sh = Sheets("EXPORTDATES")
For i = 3 To 40
  a = sh.Range("F" & i)
  b = sh.Range("C" & i)
  Sheets(a).Name = b
Next
End Sub

Bonjour SabV,

merci pour ton retour,

en effet ca fonctionne, mais lorsque je change les données les onglets ne se mettent pas à jour,

comment y remédier?

En te remerciant par avance,

Freezion.

Bonjour,

j'ai ajouté la màj de la colonne F,

Sub RenommeOnglet()
Set sh = Sheets("EXPORTDATES")
For i = 3 To 40
  a = sh.Range("F" & i)
  b = sh.Range("C" & i)
  Sheets(a).Name = b
  sh.Range("F" & i) = b
Next
End Sub

la macro pourrait s'exécuter sur l'événement Worksheet_Change de l'onglet "EXPORTDATES"

Private Sub Worksheet_Change(ByVal Target As Range)
Set isect = Application.Intersect(Target, Range("C3:C40"))
If Not isect Is Nothing Then
Application.EnableEvents = False
RenommeOnglet
Application.EnableEvents = True
End If
End Sub

Bonjour SabV,

Lorsque je mets à jour de mon coté, cela m'affiche un message d'erreur, "erreur d’exécution 9, l'indice n'appartient pas à la sélection" sur le phrase " Sheets(a).Name = b".

Par ailleurs, je me demandais pourquoi la colonne F avait besoin d'être pris en considération dans la formule VBA? Je ne suis pas sûr de bien saisir.

Et dernier point, je n'ai pas trop compris ce je devais vraiment faire avec cette macro?

"Private Sub Worksheet_Change(ByVal Target As Range)

Set isect = Application.Intersect(Target, Range("C3:C40"))

If Not isect Is Nothing Then

Application.EnableEvents = False

RenommeOnglet

Application.EnableEvents = True

End If

End Sub"

Je suis vraiment désolé je galère un peu,

En te remerciant d'avance,

Freezion.

il faut s'assurer que les nom inscrit dans la plage EXPORTDATES!"C3:C40" ne contienne pas de caractère interdit au nom d'onglet.

d'autre part assurer vous que la plage EXPORTDATES!"F3:F40" contiennent bien les nom des onglets existant.

en effet ca fonctionne, mais lorsque je change les données les onglets ne se mettent pas à jour, comment y remédier?

la macro événementielle doit être mit sur la page code de la feuille "EXPORTDATES"

elle sert à mettre à jour les nom d'onglets, lorsqu'il se produit un changement dans la plage EXPORTDATES!"C3:C40"

Ca à l'air de fonctionner,

Encore un grand merci pour tes conseils,

Freezion.

Merci pour ce retour, au plaisir!

ps/ Merci de clôturer le fil en cliquant sur le bouton V vert du post à coté du bouton EDITER si problème résolu.

Rechercher des sujets similaires à "automatiser noms onglets liste"