DDA 22 a écrit :
>
> je voudrais que le nom d'une feuille prenne la valeur d'une cellule de cette
> même feuille ; y-a-t-il une astuce (sans macro si possible..) ? je travaille
> sur excel 5 et 2000 et je sais qu'il y a parfois des variations. Merci de
> m'indiquer pour les deux.
Sans macro : impossible.
Avec macro...
1) Excel 5 :
Private Sub CréerEvt()
ActiveSheet.OnEntry = "Feuille_OnEntry"
End Sub
Private Sub DétruireEvt()
ActiveSheet.OnEntry = ""
End Sub
Private Sub Feuille_OnEntry()
If ActiveCell.Address = "$A$1" Then ActiveSheet.Name = [A1]
End Sub
La procédure CréerEvt indique à Excel de déclencher automatiquement la
procédure Feuille_OnEntry dès qu'on modifie le contenu d'une cellule
dans la feuille active. Il suffit d'exécuter CréerEvt une seule fois et
d'enregistrer ensuite le classeur. DétruireEvt détruit cet événement.
Attention, testé sous Excel 2000 (pas d'Excel 5 sous la main ici). Si ça
marche mal, fais-le moi savoir.
2) Excel 2000 :
Fais un clic droit sur l'onglet de la feuille de calcul -> "Visualiser
le code" et copie la procédure suivante dans la fenêtre de code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then _
Me.Name = [A1]
End Sub
(en remplaçant bien sûr A1 par la cellule qui doit donner le nom de la
feuille).
Note que ces deux procédures, celle pour Excel 5 comme celle pour Excel
2000, ne se déclenchent que si on entre à la main une nouvelle valeur
dans la cellule concernée. Pas si son contenu est modifié par le biais
d'une formule. Dans ce cas, il faudrait utiliser d'autres macros.
Bonne chance,
Laurent