XL 2010 Ouvrir un onglet selon le mois en cours

PatFr38

XLDnaute Nouveau
Bonjour.

J'ai des onglets ayant chacun pour nom les 12 mois de l'année (Janvier, Février, [...] Décembre).

J'aimerais avoir un code VBA pour que dès l'activation de l'onglet Janvier, si on n'est pas au mois de Janvier, on se retrouve sur l'onglet du mois en cours (Août au moment où j'écris cette demande d'aide), SVP.

Merci d'avance pour votre aide précieuse.
 
Solution
Le plus simple c'est d'utiliser une MsgBox :
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
On Error Resume Next 'si la feuille n'existe pas
If IsDate("1/" & Sh.Name) Then If LCase(Sh.Name) <> Format(Date, "mmmm") Then _
    If MsgBox("Aller sur le mois en cours ?", 4) = 6 Then Sheets(Format(Date, "mmmm")).Activate
If Err Then MsgBox "Mois en cours introuvable !", 48
End Sub

job75

XLDnaute Barbatruc
Bonsoir PatFr38, bienvenue sur XLD,

Placez cette macro dans ThisWorkbook :
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
On Error Resume Next 'si la feuille n'existe pas
If IsDate("1/" & Sh.Name) Then Sheets(Format(Date, "mmmm")).Activate
End Sub
A+
 

Pièces jointes

  • suivi-multi-comptes(1).xlsm
    422.4 KB · Affichages: 26

PatFr38

XLDnaute Nouveau
Bonjour.

Alors la solution de job75 fonctionne très bien, bravo à lui 👏💪, sauf que je n'avais pas pensé à un détail important... :( Du coup, il est désormais impossible d'accéder à tous les onglets autres que celui du mois en cours ! 😂 Quand je tente de sélectionner l'onglet Janvier, par exemple, paf ! on saute sur celui d'août, le mois en cours, le job demandé... :oops:

J'ai réfléchi à une solution : la seule que j'ai trouvée, ce serait que les onglets des mois autres que celui du mois en cours et antérieurs au mois en cours soient renommés... Par exemple "Janvier" => "Janvier X".

Il y a peut-être une autre solution encore plus simple, car en fait mon souhait initial est d'aller sur l'onglet portant le nom du mois en cours lorsqu'on clique sur un bouton nommé Mois placé sur un onglet nommé Accueil avec un lien hypertexte vers l'onglet du mois en cours. La solution de job75 fonctionne lorsqu'on active un onglet portant le nom d'un des 12 mois de l'année autre que celui en cours...

Est-ce que quelqu'un aurait une idée de code pour cela, SVP ? Merci d'avance. ☺️

A+. 👋
 
Dernière édition:

job75

XLDnaute Barbatruc
Le plus simple c'est d'utiliser une MsgBox :
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
On Error Resume Next 'si la feuille n'existe pas
If IsDate("1/" & Sh.Name) Then If LCase(Sh.Name) <> Format(Date, "mmmm") Then _
    If MsgBox("Aller sur le mois en cours ?", 4) = 6 Then Sheets(Format(Date, "mmmm")).Activate
If Err Then MsgBox "Mois en cours introuvable !", 48
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T