cs_inea
Messages postés23Date d'inscriptionvendredi 21 juillet 2006StatutMembreDernière intervention 3 octobre 2008
-
1 août 2008 à 16:25
cs_inea
Messages postés23Date d'inscriptionvendredi 21 juillet 2006StatutMembreDerniè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
cs_loulou69
Messages postés672Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention 2 juin 20161 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?
cs_inea
Messages postés23Date d'inscriptionvendredi 21 juillet 2006StatutMembreDerniè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
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 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+
Vous n’avez pas trouvé la réponse que vous recherchez ?
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 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
cs_inea
Messages postés23Date d'inscriptionvendredi 21 juillet 2006StatutMembreDerniè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
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 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