Afficher une feuille de calcul en fonction de la valeur d'une cellule

MAGDEM

XLDnaute Nouveau
Bonjour,

Je suis nouvelle sur le forum et j'ai une expérience assez limitée sur Excel avec un usage régulier mais pas de vraie formation à l'utilisation des formules.
Bref, j'ai besoin d'aide.

Je voudrais savoir s'il est possible d'afficher une feuille masquée en fonction de la valeur d'une cellule. Cette dernière cellule étant une liste déroulante.
La feuille à afficher serait masquée jusqu'au choix d'une sélection qui la ferait apparaître.

Est-ce possible? Si oui, comment faire?

Merci par avance de vos réponses.
MAGDEM
 

Pierrot93

XLDnaute Barbatruc
Re : Afficher une feuille de calcul en fonction de la valeur d'une cellule

Bonjour MAGDEM et bienvenue sur le forum,

essaye ceci, à placer dans le module ou se trouve ta liste (suis parti d'une liste de validation en A1) , click droit sur l'onglet => visualiser le code et tu colles..
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Not IsEmpty(Target) Then
    Sheets(CStr(Target)).Visible = xlSheetVisible
End If
End Sub

Bon après midi
@=
 

job75

XLDnaute Barbatruc
Re : Afficher une feuille de calcul en fonction de la valeur d'une cellule

Bonsoir MAGDEM, Pierrot,

Sans se compliquer l'existence :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Sheets([A1].Text).Visible = True
End Sub
Ne pas oublier qu'une feuille de la liste peut avoir été supprimée.

A+
 

job75

XLDnaute Barbatruc
Re : Afficher une feuille de calcul en fonction de la valeur d'une cellule

Bonjour le fil, le forum,

Si l'on veut que toutes les feuilles soient masquées sauf celle dont le nom est affiché :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim s As Object
For Each s In Sheets
If s.Name <> Me.Name Then s.Visible = LCase(s.Name) = LCase([A1])
Next
End Sub
Un test sur Target n'est pas nécessaire si le nombre de feuilles n'est pas trop grand.

Fichier joint.

A+
 

Pièces jointes

  • Masquer(1).xls
    35.5 KB · Affichages: 38
  • Masquer(1).xls
    35.5 KB · Affichages: 41
  • Masquer(1).xls
    35.5 KB · Affichages: 42

MAGDEM

XLDnaute Nouveau
Re : Afficher une feuille de calcul en fonction de la valeur d'une cellule

Bonjour à tous,

Merci pour vos réponses mais cela ne marche pas...

Ou alors je ne dois pas faire les manip qu'il faut. Le plus simple je pense c'est que je vous joigne le fichier.

Je voudrais que lorsque la cellule F6 (Fonction) affiche "Technicien SAV" la feuille "Technicien SAV" apparaisse car elle ne concerne que ces postes là.

Merci par avance de votre aide.
Regarde la pièce jointe Essai Planning d'intégration, Suivi d'intégration, Décision finale.xlsm
MAGDEM
 

job75

XLDnaute Barbatruc
Re : Afficher une feuille de calcul en fonction de la valeur d'une cellule

Re,

Si l'on veut pouvoir ajouter, supprimer, renommer des feuilles il faut reconstruire la liste :

Code:
Private Sub Worksheet_Activate()
Dim i As Integer
Range("H2:H" & Rows.Count).ClearContents 'RAZ
For i = 1 To Sheets.Count
If Sheets(i).Name <> Me.Name Then Cells(i + 1, "H") = Sheets(i).Name
Next
[H:H].Sort [H1], Header:=xlYes 'tri alphabétique
Worksheet_Change [A1] 'mise à jour
End Sub
Fichier (2).

Edit : ah pas vu le post #5...

A+
 

Pièces jointes

  • Masquer(2).xls
    43.5 KB · Affichages: 44
  • Masquer(2).xls
    43.5 KB · Affichages: 51
  • Masquer(2).xls
    43.5 KB · Affichages: 47

job75

XLDnaute Barbatruc
Re : Afficher une feuille de calcul en fonction de la valeur d'une cellule

Re,

Je voudrais que lorsque la cellule F6 (Fonction) affiche "Technicien SAV" la feuille "Technicien SAV" apparaisse car elle ne concerne que ces postes là.

Renommez la feuille Technicien SAV (sans "s") et réessayez les solutions qu'on vous a données.

Pour choisir la solution il faudrait savoir s'il y aura d'autres feuilles à masquer...

A+
 

job75

XLDnaute Barbatruc
Re : Afficher une feuille de calcul en fonction de la valeur d'une cellule

Re,

Après avoir renommé la feuille il est peut-être plus simple d'utiliser :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("Technicien SAV").Visible = [F6] = "Technicien SAV"
End Sub
Tout dépend de ce que vous voulez faire avec vos autres feuilles.

A+
 

MAGDEM

XLDnaute Nouveau
Re : Afficher une feuille de calcul en fonction de la valeur d'une cellule

Après modification du nom de la feuille, ça fonctionne!!!

J'ai pris la formule de job75, et tout fonctionne comme je le voulais.

MERCI à tous pour votre aide et vos conseil précieux.

MAGDEM
 

Discussions similaires

Statistiques des forums

Discussions
312 504
Messages
2 089 082
Membres
104 023
dernier inscrit
zerarka mohamed