Afficher un graphique feuille x sur une feuille y au clic [Fermé]

Signaler
Messages postés
8
Date d'inscription
jeudi 30 juin 2016
Statut
Membre
Dernière intervention
13 juillet 2016
-
Messages postés
9760
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
5 mai 2021
-
Bonjour à tous.

Je travaille sur un fichier excel qui comporte plusieurs feuilles dont une feuille "Graph" qui contient plusieurs graphiques, qui prennent leur valeurs sur les lignes d'une feuille "Générale".
Je voudrais, si possible, que lorsque j'écris dans la ligne 3 de ma feuille "Générale" le graphique qui correspond s'affiche dans cette feuille "Générale". Si j'écris, ou je clique dans la ligne 4, c'est un autre graphique qui s'affiche, etc...

J'ai d'abords cherché à faire cela sans macro, mais je n'ai pas réussi. Je pense donc qu'une macro pourrait faire l'affaire, mais je ne sais pas comment procéder.

Auriez-vous une idée de comment faire ?

En espérant avoir été claire. Merci d'avance !!

6 réponses

Messages postés
9760
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
5 mai 2021
2 106
Bonjour

Peux tu envoyer la partie concernée de ton fichier, sur cjoint.com et joindre le lien obtenu à ton prochain message. N'oublies pas d'y ajouter des explications et des exemples de résultat attendu

1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien
en bleu souligné ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse
tu fais "Coller".

Cdlmnt
Messages postés
8
Date d'inscription
jeudi 30 juin 2016
Statut
Membre
Dernière intervention
13 juillet 2016

Bonjour et merci de votre réponse.

Voici le fichier : https://www.cjoint.com/c/FGnnARWg3HZ

Je souhaite donc que lorsque je sélectionne, par exemple, la ligne 6/7 de ma feuille "fiche_releve" ou que j'écris dans une de ses cases, le graphique "repère 1" de la feuille "Graph" s'affiche sur la feuille "fiche_releve". Si je clique sur une autre ligne, 8/9 par exemple, c'est le graphique "repère 2" qui s'affiche, et ainsi de suite.

On peut définir un emplacement ou vont se succéder les graphiques sur la feuille "fiche_releve" si nécessaire.

Merci de votre aide !!
Messages postés
9760
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
5 mai 2021
2 106
Je ne sais pas si j'ai bien compris, donc, un début de réponse http://www.cjoint.com/c/FGnoGpT0SSd
Clic-clic en colonne A pour afficher le graphique depuis la feuille Graph
RQ. Dans la feuille Graph tu n'as pas tous les graphiques, donc il y a (actuellement) un problème, un clic-clic sur le repère 3 te donnera le graphique repère 4
Pour aller plus loin il faut
- soit mettre les 13 graphiques dans le feuille Graph dans l'ordre des repères
- soit on complique un peu le code pour déterminer le bon graphique (faisable en travaillant sur le titre)

Cdlmnt
Messages postés
9760
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
5 mai 2021
2 106
J'ai finalement travaillé sur le titre
http://www.cjoint.com/c/FGno5vu01qd

Le code est dans le module de la feuille 1

RQ. Mon vieil excel 2003 a peut être perturbé le fichier

Cdlmnt
Bonjour,

Un grand merci pour votre aide, je n'aurai jamais été capable d'écrire ce code moi même...!

Est-il possible de faire en sorte que les graphiques s'affichent lorsqu'on clique sur n'importe quelle case de la ligne et non pas que sur la case de la première colonne ? J'ai cherché à modifier le code mais ça ne se passe pas comme attendu...

Merci !!!
Messages postés
9760
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
5 mai 2021
2 106
A tester (les lignes à modifier sont soulignées)

Const plageclic = "A6:AG31"

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim nomgr As String, gr As Object, nbgr As Long, nugr As Long, li As Long
Dim t As Long, l As Long, celgr As Range, titregr As String
Application.ScreenUpdating = False
If Not Intersect(Target, Range(plageclic)) Is Nothing Then
li = Target.Row
Set celgr = Target.Offset(2, 3)
t = celgr.Top
l = celgr.Left
On Error Resume Next
ActiveSheet.ChartObjects(1).Delete
nomgr = "Repère " & Range("A" & li).Cells(1, 1).Value
nbgr = Sheets("Graph").ChartObjects.Count
For nugr = 1 To nbgr
Set gr = Sheets("Graph").ChartObjects(nugr)
titregr = gr.Chart.ChartTitle.Characters.Text
If InStr(1, titregr, nomgr) > 0 Then
gr.Copy
ActiveSheet.Paste
ActiveSheet.ChartObjects(1).Top = t
ActiveSheet.ChartObjects(1).Left = l
Exit For
End If
Next nugr
End If
ActiveSheet.Range("A1").Select
Application.ScreenUpdating = True
End Sub

Cdlmnt