XL 2010 Affichage personnalisé des feuilles

ETUDIANTE

XLDnaute Nouveau
Bonjour les experts
J'ai un souci et demande de l'assistance. j'ai un classeur de 10 feuilles (A,B,C..J) toutes reliées entre elles par des formules. je voudrais créer une 11ème feuille sur la quelle j'écrirai 2 termes
*Rouges et
*Noirs
je voudrais que quand je clique sur ''rouges'', les feuilles A,B,C,D et E seulement s'ouvrent et quand je clique sur ''Noirs'' les autres de F à J s'ouvrent.
comment faire? merci de m'aider
 

job75

XLDnaute Barbatruc
Bonjour ETUDIANTE, salut Philippe (pas ouvert ton fichier),

Une feuille ne s'ouvre pas, elle s'active ou s'affiche.

Je comprends que vous voulez afficher 5 feuilles, les 5 autres étant masquées.

Alors clic droit sur l'onglet de la 11ème feuille => Visualiser le code et y coller cette macro :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If LCase(Target) <> "rouges" And LCase(Target) <> "noirs" Then Exit Sub
Dim i As Byte
Cancel = True
Application.ScreenUpdating = False
On Error Resume Next 's'il manque des feuilles
For i = 1 To 10
    If LCase(Target) = "rouges" Then Sheets(Mid("ABCDEFGHIJ", i, 1)).Visible = i < 6
    If LCase(Target) = "noirs" Then Sheets(Mid("ABCDEFGHIJ", i, 1)).Visible = i > 5
Next
Me.Activate
End Sub
A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re,

La macro précédente suppose qu'il y a 2 cellules sur lesquelles on fait un double-clic.

On peut n'en utiliser qu'une en faisant varier son texte :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If LCase(Target) <> "rouges" And LCase(Target) <> "noirs" Then Exit Sub
Dim i As Byte
Cancel = True
Application.ScreenUpdating = False
On Error Resume Next 's'il manque des feuilles
For i = 1 To 10
    If LCase(Target) = "rouges" Then Sheets(Mid("ABCDEFGHIJ", i, 1)).Visible = i < 6
    If LCase(Target) = "noirs" Then Sheets(Mid("ABCDEFGHIJ", i, 1)).Visible = i > 5
Next
Target = IIf(LCase(Target) = "noirs", "Rouges", "Noirs") 'inversion du texte
Me.Activate
End Sub
A+
 

ETUDIANTE

XLDnaute Nouveau
Re,

La macro précédente suppose qu'il y a 2 cellules sur lesquelles on fait un double-clic.

On peut n'en utiliser qu'une en faisant varier son texte :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If LCase(Target) <> "rouges" And LCase(Target) <> "noirs" Then Exit Sub
Dim i As Byte
Cancel = True
Application.ScreenUpdating = False
On Error Resume Next 's'il manque des feuilles
For i = 1 To 10
    If LCase(Target) = "rouges" Then Sheets(Mid("ABCDEFGHIJ", i, 1)).Visible = i < 6
    If LCase(Target) = "noirs" Then Sheets(Mid("ABCDEFGHIJ", i, 1)).Visible = i > 5
Next
Target = IIf(LCase(Target) = "noirs", "Rouges", "Noirs") 'inversion du texte
Me.Activate
End Sub
A+

Bonjour
Merci Job75 pour votre réponse. Mais j'avoue que je ne comprends rien des macros. Ya t-il pas une autre méthode plus simple ou pouvez-vous me recommander un site pour apprendre plus sur les macros? merci
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 152
Membres
103 135
dernier inscrit
Imagine