XL 2010 Affichage personnalisé des feuilles

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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:
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+
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
340
  • Question Question
Réponses
5
Affichages
300
Réponses
4
Affichages
181
Retour