Pb d'exécution du code nom cellule=nom onglet

cs_inea Messages postés 23 Date d'inscription vendredi 21 juillet 2006 Statut Membre Dernière intervention 3 octobre 2008 - 1 août 2008 à 16:25
cs_inea Messages postés 23 Date d'inscription vendredi 21 juillet 2006 Statut Membre Dernière intervention 3 octobre 2008 - 4 août 2008 à 10:44
Bonjour à tous !

J'ai une petite question à vous poser concernant un code tout bête mais qui me bloque sous VBA Excel.

Voilà j'ai un classeur qui recense divers mouvement qui ont lieu de Juillet N à Juin N+1.
Il y a autant d'onglet que de mois + une feuille de sommaire ou je mets en dur les deux années traitées. Mon but étant en effet de mettre les années une seule fois et qu'elle s'actualisent automatiquement via des formules. 

Chaque feuille a pour titre ="MOIS "&ANNEEN pour les mois de juillet à décembre (année n+1 pour le reste) dans la cellule A1, qui soit dit en passant est fusionnée avec d'autres cellule à côté.
Je voudrais que mes onglets aient pour nom la même chose que ce qui est écrit dans la cellule A1 et pour cela j'ai écrit le code suivant dans les feuilles :

Private Sub Worksheet_Change(ByVal Target As Range)If Target.Address "$A$1" And Target.Value <> 0 Then ActiveSheet.Name Target.Value
End Sub

Mon problème est que quand je change de date dans la feuille sommaire, ça me change bien les titres de mes différentes feuilles mais pas les noms de mes onglets. Ca ne marche que si je mets mon curseur dans la barre de formule de ma cellule de titre, que je ne change rien et que j'appuie sur entrée...

Existe-t-il un autre moyen que le nom de mes onglets changent automatiquement plutot que d'aller à chaque fois dans la barre de formule de la cellule ??

J'espère que mes explications ont été claire.
J'attends vos remarques/suggestions/aide

A bientot
Inea

9 réponses

cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
1 août 2008 à 16:53
bonjour
C'est bizare j'ai collé le code, et mon onglet change de nom dès que je sors de la cellule A1
J'ai dans Outils/Macro/sécurité ="Basse", est-ce l'explication?
0
cs_inea Messages postés 23 Date d'inscription vendredi 21 juillet 2006 Statut Membre Dernière intervention 3 octobre 2008
1 août 2008 à 17:02
Bonjour Loulou69

Hélas je ne pense pas que ça soit ma solution car je viens d'essayer et pas de changement...
0
cs_inea Messages postés 23 Date d'inscription vendredi 21 juillet 2006 Statut Membre Dernière intervention 3 octobre 2008
1 août 2008 à 17:07
En fait je pense plutot que cela vient du fait que j'ai une formule dans la cellule A1 qui renvoie à l'onglet sommaire et non que je rentre directement quelquechose dans la cellule A1 car effectivement, si je mets quelque chose "en dur" dans A1 cela fonctionne
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
1 août 2008 à 17:19
salut,

c'est normale car l'evenement worksheet_change est associé a une feuille et ne fonctionne que quand cette feuille est active.

dans ta feuille sommaire et dans celle-ci uniquement tu ajoute ceci :

tu ne nous a pas dit quelle est la cellule de la feuille sommaire qui contient la date donc je considere que c'est la cellule A1

Private Sub Worksheet_Change(ByVal Target As Range)
   Dim Feuille As WorkSheet
   If Target.Address = "$A$1" And Target.Value <> 0 Then
      For Each Feuille in ThisWorkBook.Worksheets
         Feuille.Name = Feuille.range("A1").Value
      Next
   End If
End Sub

A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
1 août 2008 à 17:27
oups

Private Sub Worksheet_Change(ByVal Target As Range)
   Dim Feuille As WorkSheet
   If Target.Address = "$A$1" And Target.Value <> 0 Then
      For Each Feuille in ThisWorkBook.Worksheets         If Not LCase(Feuille.Name) "sommaire" Then Feuille.Name Feuille.Range("A1").Value
      Next
   End If
End Sub
0
cs_inea Messages postés 23 Date d'inscription vendredi 21 juillet 2006 Statut Membre Dernière intervention 3 octobre 2008
1 août 2008 à 19:09
BigFish,

Est ce que je peux t'envoyer mon classeur quelque part pour que tu vois car j'ai cru que ça avait marché un moment mais finalement ça m'a changé le nom de mon onglet sommaire
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
1 août 2008 à 20:29
que de la feuille sommare ?!?

esaye ça:

Private Sub Worksheet_Change(ByVal Target As Range)
   Dim Feuille As WorkSheet
   If Target.Address = "$A$1" And Target.Value <> 0 Then
      For Each Feuille in ThisWorkBook.Worksheets
         If LCase(Feuille.Name) <> "sommaire" Then Feuille.Name = Feuille.Range("A1").Value
      Next
   End If
End Sub
0
cs_inea Messages postés 23 Date d'inscription vendredi 21 juillet 2006 Statut Membre Dernière intervention 3 octobre 2008
1 août 2008 à 21:02
Même effet, si je ne rentre pas dans la cellule titre (de mes autres feuilles pas de la feuille sommaire) les noms de mes onglets ne changent pas
0
cs_inea Messages postés 23 Date d'inscription vendredi 21 juillet 2006 Statut Membre Dernière intervention 3 octobre 2008
4 août 2008 à 10:44
Toujours pas d'idée ?
Moi j'ai un peu bidouillé de mon côté mais rien de concluant...
0
Rejoignez-nous