Excel : lien vers feuilles graphiques cachées

Résolu/Fermé
vicozongo Messages postés 17 Date d'inscription mardi 29 juillet 2008 Statut Membre Dernière intervention 28 août 2008 - 30 juil. 2008 à 10:50
vicozongo Messages postés 17 Date d'inscription mardi 29 juillet 2008 Statut Membre Dernière intervention 28 août 2008 - 1 août 2008 à 14:46
Bonjour,

J'ai un classeur Excel dont la première page contient différents trajets en train et leurs prix respectifs en fonction du jour de départ.

Grace a une macro, je peux renvoyer vers des graphiques (chacun placé sur une nouvelle feuille et PAS EN TANT QU'OBJET, il n'y a donc pas de cellule sur ces pages graphiques)

Le problème c'est que j'ai du coup, beaucoup, beaucoup d'onglets (un par trajet), et que je souhaiterai ne garder que la premiere feuille visible, puis quand je clique sur un lien, afficher le graphique en question.

Puis quand je re-clique sur l'onglet de ma première page, recacher l'onglet du graphique précédemment apparu...

J'ai essayer en cachant mes pages mais là, plus rien ne se passe...

Merci pour votre future aide.

Victor
A voir également:

6 réponses

m@rina Messages postés 20070 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 24 avril 2024 11 271
30 juil. 2008 à 15:18
Bonjour,

Je situe pas vraiment où se trouve ton problème.

Sur ta première page, tu mets des boutons affectés à des macros qui renvoient chacune sur une page de graph :

Sub montre()
With Sheets("graph_n")
.Visible = True
.Activate
End With
End Sub

Et sur chaque page de graph, tu mets un bouton affecté à une macro qui cache la feuille. Ou bien, pour éviter de mettre des boutons partout, tu peux ajouter un bouton sur la barre d'outils.

Sub cache()
ActiveSheet.Visible = False

End Sub

m@rina
0
m@rina Messages postés 20070 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 24 avril 2024 11 271
30 juil. 2008 à 15:21
Re...

J'ajouterais que s'il y a effectivement beaucoup de feuilles, on peut imaginer une seule macro qui affiche le bon graphique et non pas une macro par graphique.

Il faudrait par exemple que la macro reprenne en variable le numéro de la ligne ou le nom de la cellule sélectionnée.

m@rina
0
vicozongo Messages postés 17 Date d'inscription mardi 29 juillet 2008 Statut Membre Dernière intervention 28 août 2008
1 août 2008 à 10:16
salut

bon j'ai essayer ce we les différentes solutions, avec boutons sur chaque feuille ou dans la barre d'outils.
je rencontre toujours le même problème, une fois la page cachée, impossible de la faire réapparaître.
Pour info, voila le code utilisé pour renvoyer de ma page d'accueil à mes feuilles graphique :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Not Intersect(Target, Range("E:E")) Is Nothing And Target.Value <> "" Then
On Error Resume Next
'Active la feuille graphique si elle existe.
Charts(Target.Value).Activate
If Err.Number <> 0 Then
Err.Clear
MsgBox "Pas de graphique à ce nom"
End If
End If
End Sub

si t'as une solution...
0
vicozongo Messages postés 17 Date d'inscription mardi 29 juillet 2008 Statut Membre Dernière intervention 28 août 2008
30 juil. 2008 à 15:59
le problème c'est que je débute vraiment en excel et donc mettre un "bouton" relève déjà du défis
mais je vais chercher un peu et je te redemanderai si besoin

merci

vicozongo
0
m@rina Messages postés 20070 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 24 avril 2024 11 271
30 juil. 2008 à 16:16
Pour mettre un bouton, voici une solution parmi d'autres, on ne peut plus simple : ;)

Tu dessines un rectangle ou n'importe quelle autre forme, puis cliic droit => Affecter une macro
Tu choisis ta macro et c'est tout...

m@rina
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vicozongo Messages postés 17 Date d'inscription mardi 29 juillet 2008 Statut Membre Dernière intervention 28 août 2008
30 juil. 2008 à 17:10
donc je résume :

1°) j'ai sur ma première page une macro qui m'envoie qd je clique sur un trajet vers le graphe correspondant.
Cette macro est générale a ma première feuille donc pas besoin de bouton la, si ??

2°) Après, j'ai le choix :
a-) sur mes toutes pages graphiques, je crée un rectangle, je fais ajouter macro. (comment s'écrit-elle ?)

b-) dans la barre d'outil, je crée un bouton (comment, parce que la le rectangle ne marche pas) et je met la macro :

Sub cache()
ActiveSheet.Visible = False

End Sub

je penche pour le b-), qui m'a l'air plus élégant.

Après si j'ai bien compris, je devrai cacher toute s me feuilles en cliquant sur ce bouton unique (ou sur chaque bouton), puis a chaque clic sur le lien trajet, le graphe correspondant s'ouvre et je le recache quand j'ai envie ?

Enfin, dernière question, si par exemple je veux réafficher les feuilles graphiques sans passer pas mon lien, je peux ? si oui, comment ?

dsl mais pour un débutant c'est vraiment dur

vicozongo
0
m@rina Messages postés 20070 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 24 avril 2024 11 271
1 août 2008 à 11:00
Bonjour,

1°) j'ai sur ma première page une macro qui m'envoie qd je clique sur un trajet vers le graphe correspondant.
Cette macro est générale a ma première feuille donc pas besoin de bouton la, si ??


Oui, effectivement, c'est ce que je te proposais dans ma deuxième réponse, à savoir récupérer une variable pour afficher n'importe quelle feuille. Cependant ta macro ne fait qu'activer la feuille... Il faut avant qu'elle la rende visible.

Tu remplaceras : "Charts(Target.Value).Activate"
par :

With Charts(Target.Value)
.Visible = True
.Activate
End With


Pour les graphs, tu as le choix entre mettre un bouton sur la feuille ou un bouton sur la barre d'outils. Le résultat est le même. Personnellement, je trouve sympa d'avoir le bouton sur la feuille, c'est visible et plus direct.
Voici un exemple ici :
https://www.cjoint.com/?iblahiz6Rx


Donc, effectivement un double clic sur la cellule correspondante au graph permet d'afficher le graph. Un clic sur le bouton CACHER permet de masquer la feuille du graph.

Pour afficher une feuille sans double cliquer sur la cellule : Menu Format, Feuille, Afficher.
On peut faire une macro pour tout afficher d'un coup :

Sub montre_tout()
For Each f In ActiveWorkbook.Sheets
f.Visible = True
Next f
End Sub


m@rina
0
vicozongo Messages postés 17 Date d'inscription mardi 29 juillet 2008 Statut Membre Dernière intervention 28 août 2008
1 août 2008 à 14:46
oui super c'est parfaitement ca que je voulais faire
je m'en occupe maintenant
merci beaucoup d'avoir passer du temps,

vicozongo
0