[Résolu]Macro onglet visible sur critères

Annette

XLDnaute Occasionnel
Bonsoir le forum,

Je recherche une solution par macro à ma problématique:
Par exemple, pour un classeur contenant 3 feuilles, je souhaite une macro qui m'affiche la feuille 1 et cache les deux autres (celle-ci je l'ai dans ma musette). La complication pour moi est la suivante:
Feuille 2 et 3 cachées (en fait toute les autres feuilles)
Lorsque 2 conditions sont réunies, je souhaite que la feuille 1 soit cachée et que la feuille 2 soit visible et ainsi de suite.
Est-ce possible et si oui quelqu'un pourrait-il me proposer une solution ?

Merci pour vos réponses

Cordialement
 

Pièces jointes

  • Test macro onglet.xlsm
    9.7 KB · Affichages: 41
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Macro onglet visible sur critères

Bonsoir à tous

Annette
Par exemple, pour un classeur contenant 3 feuilles, je souhaite une macro qui m'affiche la feuille 1 et cache les deux autres (celle-ci je l'ai dans ma musette)
Pourquoi dans la musette et pas dans le fichier joint ?

Ton fichier exemple ne contient aucune macro...
 

Si...

XLDnaute Barbatruc
Re : Macro onglet visible sur critères

salut

dans la page de code de la feuille (click bouton droit sur le nom de l'onglet puis Visualiser le code)
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim Si As Boolean
  Si = [J14] = "OK" And [J16] = "OK" 'si = Vrai si les 2 sont OK
  Feuil2.Visible = Si: Feuil3.Visible = Si
End Sub

Remplace And par Or pour n'envisager qu'un des 2 cas.
 

Annette

XLDnaute Occasionnel
Re : Macro onglet visible sur critères

Bonsoir Si...,

Votre proposition est ce que je souhaite mais il faudrait que lorsque les conditions de la feuille 1 soient réunies, la feuille 2 apparaisse (chose qui se fait actuellement) et que la feuille 1 disparaisse à son tour.

Merci pour votre retour.

Cordialement
 

Staple1600

XLDnaute Barbatruc
Re : Macro onglet visible sur critères

Re, Bonsoir Si...

Comme j'ai titillé mon VBE, je poste (en guise de piste à suivre ou pas)
(code à mettre dans ThisWorkBook)
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Select Case Sh.Name
Case "Feuil1"
Sh.Next.Visible = 0: Sh.Next.Next.Visible = 0
Case "Feuil2"
Sh.Next.Visible = 0: Sh.Previous.Visible = 0
Case "Feuil3"
Sh.Previous.Visible = 0: Sh.Previous.Previous.Visible = 0
End Select
End Sub

NB: J'ai bien dit piste, pas solution ;)
 

Annette

XLDnaute Occasionnel
Re : Macro onglet visible sur critères

Staple1600,

NB: J'ai bien dit piste, pas solution ;)

D'où mes tests avec votre macro que je n'arrive bien évidemment pas à adapter.
Votre macro actuelle fonctionne sauf que les feuilles 2 et 3 sont masquées quoiqu'on entre dans n'importe quelle cellule de la feuille 1.
Une fois de plus, je précise que j'ai du mal à comprendre le langage VB (très jeune débutante) et c'est pour cela que je demande de l'aide.

Si ...,

Je ne souhaite pas faire réapparaitre les onglets masqués, en revanche pouvez-vous me dire si il est possible lors de l'ouverture de ne faire qu'apparaitre la feuille 1, et si oui, pourriez-vous me donner la marche à suivre.

Merci à vous deux et au forum.

Cordialement
 

Staple1600

XLDnaute Barbatruc
Re : Macro onglet visible sur critères

Re

Annette
C'est normal puisque je n'ai pas inclu ce qui Si... a inclu ;)

Si = [J14] = "OK" And [J16] = "OK" 'si = Vrai si les 2 sont OK

Donc il suffit de s'inspirer de Si.. pour compléter la macro précédente
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Range("J14") = "OK" And Sh.Range("J16") = "OK" Then
Select Case Sh.Name
Case "Feuil1"
Sh.Next.Visible = 0: Sh.Next.Next.Visible = 0
Case "Feuil2"
Sh.Next.Visible = 0: Sh.Previous.Visible = 0
Case "Feuil3"
Sh.Previous.Visible = 0: Sh.Previous.Previous.Visible = 0
End Select
End If
End Sub
Mais reste toujours à prendre en compte la remarque de Si...
Une fois masquée, comment on réaffiche les feuilles ?
(à part avec une macro de ce type dans un module standard)
Code:
Sub a()
Dim ws As Worksheet
For Each ws In Worksheets
ws.Visible = True
Next
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Macro onglet visible sur critères

Re

Annette
Et c'est ce que j'ai ajouté dans mon précédent message, non ?
Je parle du test sur J14 et J16

Sinon pour ne laisser que la feuille 1 visible, tester ce code
(à mettre dans ThisWorkBook)
Code:
Private Sub Workbook_Open()
Dim ws As Worksheet
For Each ws In Worksheets
If ws.Index > 1 Then
ws.Visible = 0
End If
Next
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 075
Messages
2 085 080
Membres
102 772
dernier inscrit
bluetesteur