gratifiant > microsoft.* > microsoft.excel

Savoie73 (23/07/2005, 10h50)
je voudrais nommer un onglet d'un classeur, avec le contenu d'une cellule
d'une des feuille de calcul de ce classeur exemple: onglet feuille 2 = au
contenu de la cellule A8 de la feuille 1
Modeste (23/07/2005, 11h08)
Bonsour® si... si... ce n'est pas interdit !!!
Savoie73 wrote:
> je voudrais nommer un onglet d'un classeur, avec le contenu d'une
> cellule d'une des feuille de calcul de ce classeur exemple: onglet
> feuille 2 = au contenu de la cellule A8 de la feuille 1


cela ne peut se faire que à la mimine ou bien par macro
sub savoie73
WorkSheets("feuil2").name=workSheets("Feuil1").cel ls(8,1)
end sub

attention cette proc ne fonctionnera qu'une fois !!!!
puisque Feuil2 n'existera plus et le nom de la feuil1!$a$8 sera déja utilisé
!!!!

une autre alternative tout aussi risquée .....
car les feuilles peuvent etre déplacées ou le nom déja utilisé !!!
(il conviendra alors d'utiliser une gestion d'erreur)

sub Modeste59
WorkSheets(2).name=workSheets(1).cells(8,1)
end sub

@+
LSteph (23/07/2005, 11h17)
'bonjour...

On Error Resume Next
Sheets("feuil2").Name = Sheets("feuil1").Cells(8, 1).Value
On Error GoTo 0

'...merci

'Cela ne servira que tant qu'il y aura une feuil2 et qqchose en feuil1!a8

'Aussi pour Feuille Active:

On Error Resume Next
Activesheet.name= Sheets("feuil1").Cells(8, 1).Value
On Error GoTo 0

'lSteph

"Savoie73" <Savoie73> a écrit dans le message de
news:fc90
abcd (23/07/2005, 11h34)
bon, tu peux prendre les conseils donnés par les autres en ajoutant le
mien: au lieu d'appeler les feuilles par leur nom "utilisateur"
sheets("nom")
à la place utilise leur nom VBA (dans l'éditeur tu vois des noms fixes
genre Feuil1)

tu peux mettre Feuil1.Name ce qui fonctionnera toujorus même si
l'utilisateur change le nom d'une feuille.

Et c'est ce qu'il te faut dans ton cas.
abcd (23/07/2005, 11h50)
D'ailleurs je pense que tu as plutôt intérêt à utiliser les événements
(dès que tu tapes autre chose dans la cellule, le nom est mis àjour)

dans le code de la feuille contenant la source:

Private Sub Worksheet_Change(ByVal Target As Range)
With Me.Range("A8") 'mieux si cellule nommée
If Not (Intersect(.Cells, Target) Is Nothing) Then
Feuil2.Name = .Value
End If
End With
End Sub
Discussions similaires