XL 2010 Affichage personnalisé des feuilles

  • Initiateur de la discussion Initiateur de la discussion ETUDIANTE
  • Date de début Date de début

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 !

E

ETUDIANTE

Guest
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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 agrandir la liste
Réponses
21
Affichages
393
  • Question Question
Microsoft 365 Fonction si
Réponses
7
Affichages
124
Réponses
5
Affichages
390
  • Question Question
Réponses
5
Affichages
519
Réponses
4
Affichages
284
Retour