Rapport de message :*
 

Re: nommer un onglet avec le nom d'une cellule

Titre du sujet : Re: nommer un onglet avec le nom d'une cellule
par JeanMarie le 16/02/2008 12:11:02

Re...

Tu as plusieurs solutions.
[list]
[*]Tu laisses la cellule A1 à vide des deux feuilles que tu ne veux pas toucher, et il y a rien à toucher au code, la gestion d'erreur va faire son rôle.[/list]

[list]
[*]Tu peux rajouter dans une cellule de la feuille concernée, une valeur indiquant à la macro de ne pas remplacer son nom.[/list]

For 1 To Worksheets.Count
   
'I contenant une valeur allant de 1 à ...
   '
Worksheets(I).Name (lecture ou Ecrituredu nom de la feuille
   
'Worksheets(I).Range("A1")(lecture ou Ecriture) dans la cellule A1
   With Worksheets(I)
      If .Range("A2") <> "pas touche" Then .Name = .Range("A1")
   End With
'
Passe à la feuille suivante
Next
ici c'est la cellule A2 qui va faire barrage au changement de nom

[list]
[*]Tu peux utiliser le nom de la feuille[/list]
For 1 To Worksheets.Count
   
'I contenant une valeur allant de 1 à ...
   '
Worksheets(I).Name (lecture ou Ecrituredu nom de la feuille
   
'Worksheets(I).Range("A1")(lecture ou Ecriture) dans la cellule A1
   With Worksheets(I)
      If Not (.Name = "accueil") Or (.Name = "Recap") Then .Name = .Range("A1")
   End With
'
Passe à la feuille suivante
Next
ici Les feuilles nommées accueil et recap ne seront pas modifiées

[list]
[*]Tu peux en fonction de la position des feuilles dans les onglets, si elle sont placées en dernier[/list]
For 1 To Worksheets.Count -2
   
'I contenant une valeur allant de 1 à ...
   '
Worksheets(I).Name (lecture ou Ecrituredu nom de la feuille
   
'Worksheets(I).Range("A1")(lecture ou Ecriture) dans la cellule A1
   Worksheets(I).Name = Worksheets(I).Range("A1")
'
Passe à la feuille suivante
Next
Nota, cela ne tient pas compte de l'ordre de création des feuilles, uniquement la position

En première position
For 3 To Worksheets.Count
   
'I contenant une valeur allant de 1 à ...
   '
Worksheets(I).Name (lecture ou Ecrituredu nom de la feuille
   
'Worksheets(I).Range("A1")(lecture ou Ecriture) dans la cellule A1
   Worksheets(I).Name = Worksheets(I).Range("A1")
'
Passe à la feuille suivante
Next


Comme tu peux le voir, cela dépend de ce que tu veux obtenir (on le sait), mais surtout du comment...

Je suis certain qu'il y a d'autres solutions.

@+Jean-Marie