Grouper des Onglets ... Out Of Range

sharkantipav

XLDnaute Occasionnel
Bonjour,
J'ai un fichier excel qui contient plus de 55 onglet dont 4 pour chaque mois.
J'ai ecrit une macro locale dans l'onglet principal de chaque mois.
Je souhaite que lorsque je clique sur ce mois les 4 onglet du mois apparaissent. Mais des que je clique sur un autre ceux ci se masquent au profit de ceux de l'autre mois.
Ceci dit, j'ai une erreur out of range ou type mismatch a chaque fois
Voici le code

Code:
Private Sub Worksheet_Activate()

m = Format(Range("F2"), "MMM")
Sheets(m & " Cust Total").Visible = True
Sheets(m & " Futures").Visible = True
Sheets(m & " Stocks").Visible = True

End Sub

Private Sub Worksheet_Deactivate()

Dim m As String
m = Format(Range("F2"), "MMM")

If ThisWorksheet Is ActiveSheet Then
Sheets(m & " Cust Total").Visible = True
Sheets(m & " Futures").Visible = True
Sheets(m & " Stocks").Visible = True

Else
If Sheets(m & " Cust Total") Is ActiveSheet Then
Sheets(m & " Cust Total").Visible = True
Sheets(m & " Futures").Visible = True
Sheets(m & " Stock").Visible = True

Else
If Sheets(m & " Futures") Is ActiveSheet Then
Sheets(m & " Cust Total").Visible = True
Sheets(m & " Futures").Visible = True
Sheets(m & " Stocks").Visible = True

Else
If Sheets(m & " Stocks") Is ActiveSheet Then
Sheets(m & " Cust Total").Visible = True
Sheets(m & " Futures").Visible = True
Sheets(m & " Stocks").Visible = True


Else
Sheets(m & " Cust Total").Visible = False
Sheets(m & " Futures").Visible = False
Sheets(m & " Stocks").Visible = False

End If
End If
End If
End If
End Sub

Si qq peut aider
Merci Bcp
 

JNP

XLDnaute Barbatruc
Re : Grouper des Onglets ... Out Of Range

Bonjour :)
Dans ThisWorkbook :
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim Feuille As Worksheet
For Each Feuille In ThisWorkbook.Worksheets
If Right(Feuille.Name, 1) <> 1 And Left(Feuille.Name, 3) <> Left(Sh.Name, 3) Then
Feuille.Visible = xlSheetHidden
Else
Feuille.Visible = xlSheetVisible
End If
Next Feuille
End Sub
Juste modifier Right(Feuille.Name, 1) <> 1 en fonction de la fin de l'onglet que tu veux garder visible pour chaque mois... :p
Et gicler tous les autres codes :rolleyes:
Bonne suite :)
 

sharkantipav

XLDnaute Occasionnel
Re : Grouper des Onglets ... Out Of Range

Merci de te reponse mais je 'ai pas tres bien compris le code que tu m'as mis.
Jai 53 onglet dans le fichier dont 48 -- 4 pour Chaque mois de l'annee.
Par exemple pour Janvier, j'ai les onglets suivants - JAN , JAN1, JAN2, JAN3.

Mon but est si je clique sur JAN les 4 onglets sont visible, ils restent visible si je travaille sur l'un des 4.
Si je clique sur un autre onglet alors JAN1, JAN2, JAN3 sont caches seul JAN reste visible

J'ai reussi a la faire marche en local moyennement...
en ThisWorkbook seriat parfait
Merci bcp
 

JNP

XLDnaute Barbatruc
Re : Grouper des Onglets ... Out Of Range

Re,
Avec un fichier exemple, cela aurait été plus simple...
Voilà un fichier qui fonctionne... sur tes indications...
Bonne suite :)
 

Pièces jointes

  • Onglets.xlsm
    33.1 KB · Affichages: 35

Discussions similaires

Réponses
17
Affichages
330

Statistiques des forums

Discussions
312 194
Messages
2 086 071
Membres
103 110
dernier inscrit
Privé