Code redirection vers onglet en fonction du mois

Bonjour,

Dans mon doc, je saisis des données dans l'onglet Main courante qui sont stockées dans les différents onglets mensuels du fichier en fonction d'un code qui m'a été donné sur ce forum.

Je cherche à ce qu'à la fin de l'exécution de ce code, je sois redirigé automatiquement, vers l'onglet mensuel correspondant au mois contenu dans la date présente en cellule C15 de l'onglet main courante.

Ex: si en C15 = 01/07/2012: alors je suis redirigé vers l'onglet Juillet.

Le code suivant m'avait déjà été proposé mais mon problème est qu'il recherche des onglets au format Mois + Année (Juillet 2012...) (alors que je souhaite finalement avoir des onglets juste au format Mois) et je n'arrive pas à l'adapter:

Sub Aller_sur_mois_en_cours()
Dim K As Date
  For K = 2 To 354 Step 32
    If Month([C15].Value) = Month(K) Then Sheets(Format((K), "mmmm") & " " & Year([C15].Value)).Activate: Exit For
  Next
End Sub

J'aimerais donc savoir comment adapter ce code. je ne sais pas si il y a besoin de joindre mon doc mais au cas où...

Merci pour votre aide,

Codialement,

Jacques

34jacques33.xlsm (54.26 Ko)

Bonjour

Un autre code

Sub Aller_sur_mois_en_cours()
  On Error Resume Next                        ' Au cas où la feuille n'existe pas
  Sheets(MonthName(Month(Range("C5")))).Select
End Sub

Bonjour,

Merci pour ce code, ça marche parfaitement!

J'en profite pour demander une autre adaptation de code, celui-ci (que vous m'aviez proposé Banzai) se trouve sur l'onglet main courante. De la même manière il répartit selon le mois et l'année, mais comme les onglets sont maintenant seulement au format Mois, je n'arrive pas à l'adapter.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim NomFeuille As String

  If Not Intersect(Range("C23:I23"), Target) Is Nothing And Target.Count = 1 Then
    If IsDate(Range("C23")) Then
      NomFeuille = MonthName(Month(Range("C23"))) & " " & Year(Range("C23"))
      If FeuilleExiste(NomFeuille) Then
        Application.ScreenUpdating = False
        Range("D23:I23").Copy
        Sheets(NomFeuille).Cells(79, 2 + Day(Range("C23"))).PasteSpecial Transpose:=True
        Application.CutCopyMode = False
      Else
        MsgBox "Feuille " & NomFeuille & " introuvable"
      End If
    End If
  End If
End Sub

Function FeuilleExiste(Nom As String) As Boolean
  On Error Resume Next
  FeuilleExiste = Sheets(Nom).Name <> ""
  On Error GoTo 0
End Function

J'ai essayé en supprimant la partie & " " & Year(Range("C23")) , mais cela ne marche pas et m'affiche la message box comme quoi la feuille (format Mois Année) est introuvable. Je ne comprends pas le problème.

Merci pour votre aide,

Cordialement,

Jacques

Bonjour

Jacques33 a écrit :

J'ai essayé en supprimant la partie & " " & Year(Range("C23")) , mais cela ne marche pas et m'affiche la message box comme quoi la feuille (format Mois Année) est introuvable. Je ne comprends pas le problème.

C'est ce que j'aurais fait

NomFeuille = MonthName(Month(Range("C23"))))

Dans le fichier que tu as joins dans ce post, la macro ne tient compte que du mois

Regardes si c'est la même syntaxe

Si toujours le problème, joins le fichier en cause

J'ai trouvé le petit pb qui était un espace dans le nom de mes onglets. Merci beaucoup pour cette aide!

Cordialement,

jacques

Rechercher des sujets similaires à "code redirection onglet fonction mois"