je suis un grand débutant en macros Excel 2007....et malgré mes recherches sur différents forums, je sèche sur un problème sans doute très simple.
En cellule J1, j'ai une date au format mm/dd/yyyy par exemple 10/28/2009. Cette date peut changer selon ce que rentre l'utilisateur.
Je voudrais avec une macro pouvoir récupérer l'année dans une variable ( 2009 ) pour ensuite ouvrir automatiquement l'onglet de la feuille excel qui s'intitule 2009.
Si par exemple on tape en J1 07/24/2010 , la macro doit pouvoir activer l'onglet "2010".
Voilà où j'en suis dans cette macro sans pouvoir aller plus loin sans votre aide:
J'ai testé ça dans le code mais sans succès...
Sheets(a).Activate
Code:
Sub Test()
Dim Dte As Date
Dim a As Integer
Dim Date1 As Date
Dte = DateValue(Range("J1"))
j = Day(Dte)
m = Month(Dte)
a = Year(Dte)
MsgBox " - année: " & a
If a = 2009 Then
Sheets("2009").Activate
End If
End Sub
Re : Macro récupérant l'année d'une date et bascule vers l'onglet de même nom...
Bonjour Kronos
Et bienvenue sur XLD
Code:
Sub Test()
Dim Dte As Date
Dim a As Variant
Dim Date1 As Date
Dte = DateValue(Range("J1"))
j = Day(Dte)
m = Month(Dte)
a = CStr(Year(Dte))
Sheets(a).Activate
End Sub
Re : Macro récupérant l'année d'une date et bascule vers l'onglet de même nom...
Merci pour vos réponses super rapides !....
mais j'ai encore une erreur...
en J1, l'utilisateur tape une date 05/20/2009 par exemple.
En L1 je calcule J1+365 afin d'afficher en L1 la date de J1 + 1 an exactement.
Le code fonctionne pour aller à l'onglet de la date J1, mais pas pour aller à l'onglet de la date L1 qui résulte d'un calcul...>> j'ai une erreur...j'aurais peut-être dû expliquer ce détail au tout début ?...
en tout cas, merci pour vos conseils qui me font gagner un temps précieux.
voici le code:
Code:
Sub Test3()
Sheets(CStr(Year(Range("J1").Value))).Activate
MsgBox "F2"
Sheets(CStr(Year(Range("L1").Value))).Activate
MsgBox "F3"
End Sub
Re : Macro récupérant l'année d'une date et bascule vers l'onglet de même nom...
Re
Code:
Sub Test3
Set sh = ActiveSheet
Sheets(CStr(Year(sh.Range("J1").Value))).Activate
MsgBox "F2"
Sheets(CStr(Year(sh.Range("L1").Value))).Activate
MsgBox "F3"
End Sub
Sub Test3
Set sh = ActiveSheet
Sheets(CStr(Year(sh.Range("J1").Value))).Activate
MsgBox "F2"
Sheets(CStr(Year(sh.Range("L1").Value))).Activate
MsgBox "F3"
End Sub
Re : Macro récupérant l'année d'une date et bascule vers l'onglet de même nom...
Re,
sans précision de la feuille, la valeur recherchée va lêtre sur la feuille active.... et comme tu change de feuille entre temps... PierreJean défini tout de suite la feuille sur laquelle sera pris la donnée...
Re : Macro récupérant l'année d'une date et bascule vers l'onglet de même nom...
Et si à la place de MsgBox "F2" j'ai de nombreuses procédures intermédiaires, l'activation de la bonne feuille via la date L1 sera toujours effective ??