J'ai buté récemment sur une question (de cousinhub) et en fait
j'aimerais bien trouver la réponse (pour moi).
Un graphique est créé par macro avec activation de la fenêtre graphique.
Comment masquer ou détruire le graphique si la fenêtre graphique est
fermée ou désactivée.
Y-a-t'il un évènement utilisable ? Si, non, une idée pour contourner le
problème ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
Bonjour François,
Avec ceci, cela devrait être suffisant : '------------------------ With Worksheets("Feuil1") .Shapes("Chart 1").Delete End With '------------------------
Quand tu crées un graphe dans une feuille, Excel le baptise en Français "Graphique 1" mais en vba, excel "speak white" (parle anglais), en conséquence, il traduit tout seul le nom de l'objet : Graphe 1 en Chart 1....si tu utilises dans la ligne de code "Graphe 1", excel est incapable d'identifier l'objet ... il te renvoie donc une erreur.
Pour éviter ce mépris entre l'interface de la feuille de calcul et VBA, si tu modifie le nom en utilisant l'espace à l'extrème gauche de la barre des formules lorsque le graphe est sélectionné en utilisant autre chose que "graphique" , Excel n'essaiera pas de traduire le nom et tu n'auras plus ce type de confusion.
Ce qui précède s'applique aussi au "images" Interface de la feuille de calcul, Excel lit Image x et au niveau du code on doit utiliser "Picture x"
"Francois L" a écrit dans le message de news:
Bonjour à tous,
J'ai buté récemment sur une question (de cousinhub) et en fait j'aimerais bien trouver la réponse (pour moi).
Un graphique est créé par macro avec activation de la fenêtre graphique. Comment masquer ou détruire le graphique si la fenêtre graphique est fermée ou désactivée.
Y-a-t'il un évènement utilisable ? Si, non, une idée pour contourner le problème ?
-- François L
Bonjour François,
Avec ceci, cela devrait être suffisant :
'------------------------
With Worksheets("Feuil1")
.Shapes("Chart 1").Delete
End With
'------------------------
Quand tu crées un graphe dans une feuille, Excel le baptise en Français "Graphique 1"
mais en vba, excel "speak white" (parle anglais), en conséquence, il traduit tout seul
le nom de l'objet : Graphe 1 en Chart 1....si tu utilises dans la ligne de code "Graphe 1",
excel est incapable d'identifier l'objet ... il te renvoie donc une erreur.
Pour éviter ce mépris entre l'interface de la feuille de calcul et VBA, si tu modifie
le nom en utilisant l'espace à l'extrème gauche de la barre des formules lorsque
le graphe est sélectionné en utilisant autre chose que "graphique" , Excel n'essaiera
pas de traduire le nom et tu n'auras plus ce type de confusion.
Ce qui précède s'applique aussi au "images"
Interface de la feuille de calcul, Excel lit Image x et au niveau du code
on doit utiliser "Picture x"
"Francois L" <francois@noadress.fr.invalid> a écrit dans le message de news:
OaAqRHHEHHA.3396@TK2MSFTNGP02.phx.gbl...
Bonjour à tous,
J'ai buté récemment sur une question (de cousinhub) et en fait
j'aimerais bien trouver la réponse (pour moi).
Un graphique est créé par macro avec activation de la fenêtre graphique.
Comment masquer ou détruire le graphique si la fenêtre graphique est
fermée ou désactivée.
Y-a-t'il un évènement utilisable ? Si, non, une idée pour contourner le
problème ?
Avec ceci, cela devrait être suffisant : '------------------------ With Worksheets("Feuil1") .Shapes("Chart 1").Delete End With '------------------------
Quand tu crées un graphe dans une feuille, Excel le baptise en Français "Graphique 1" mais en vba, excel "speak white" (parle anglais), en conséquence, il traduit tout seul le nom de l'objet : Graphe 1 en Chart 1....si tu utilises dans la ligne de code "Graphe 1", excel est incapable d'identifier l'objet ... il te renvoie donc une erreur.
Pour éviter ce mépris entre l'interface de la feuille de calcul et VBA, si tu modifie le nom en utilisant l'espace à l'extrème gauche de la barre des formules lorsque le graphe est sélectionné en utilisant autre chose que "graphique" , Excel n'essaiera pas de traduire le nom et tu n'auras plus ce type de confusion.
Ce qui précède s'applique aussi au "images" Interface de la feuille de calcul, Excel lit Image x et au niveau du code on doit utiliser "Picture x"
"Francois L" a écrit dans le message de news:
Bonjour à tous,
J'ai buté récemment sur une question (de cousinhub) et en fait j'aimerais bien trouver la réponse (pour moi).
Un graphique est créé par macro avec activation de la fenêtre graphique. Comment masquer ou détruire le graphique si la fenêtre graphique est fermée ou désactivée.
Y-a-t'il un évènement utilisable ? Si, non, une idée pour contourner le problème ?
-- François L
Francois L
Bonjour François,
Avec ceci, cela devrait être suffisant : '------------------------ With Worksheets("Feuil1") .Shapes("Chart 1").Delete End With '------------------------
Bonjour MichDenis,
Merci, mais... ce que je cherche c'est comment détecter la fermeture ou la désactivation de la fenêtre graphique.
-- François L
Bonjour François,
Avec ceci, cela devrait être suffisant :
'------------------------
With Worksheets("Feuil1")
.Shapes("Chart 1").Delete
End With
'------------------------
Bonjour MichDenis,
Merci, mais... ce que je cherche c'est comment détecter la fermeture ou
la désactivation de la fenêtre graphique.
Avec ceci, cela devrait être suffisant : '------------------------ With Worksheets("Feuil1") .Shapes("Chart 1").Delete End With '------------------------
Bonjour MichDenis,
Merci, mais... ce que je cherche c'est comment détecter la fermeture ou la désactivation de la fenêtre graphique.
-- François L
MichDenis
| je cherche c'est comment détecter la fermeture ou la désactivation de la fenêtre graphique.
As-tu essayé ceci : Remplace Feuil1 par le nom de ta feuille graphique. Je ne suis pas certain sur ce que tu entends par "fermeture" d'une feuille !
à mettre dans le ThisWorkbook '---------------------------- Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name <> "Feuil1" Then MsgBox "la feuille ""Feuil1"" est désactivée" End If End Sub '----------------------------
| je cherche c'est comment détecter la fermeture ou la désactivation de la fenêtre graphique.
As-tu essayé ceci : Remplace Feuil1 par le nom de ta feuille graphique.
Je ne suis pas certain sur ce que tu entends par "fermeture" d'une feuille !
à mettre dans le ThisWorkbook
'----------------------------
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name <> "Feuil1" Then
MsgBox "la feuille ""Feuil1"" est désactivée"
End If
End Sub
'----------------------------
Il y a moyen de contrôler certains aspects du graphe par un module de classe (voir les événements disponilbe)
Je joins un fichier exemple très simple http://cjoint.com/?lzrHiIe0Sh reste à voir si cela peut t'aider dans ta démarche !
Observe ce qui se passe si tu cliques sur le graphe et que tu conserve le bouton de la souris enfoncé.
"Francois L" a écrit dans le message de news:
| je cherche c'est comment détecter la fermeture ou la désactivation de la fenêtre graphique.
As-tu essayé ceci : Remplace Feuil1 par le nom de ta feuille graphique. Je ne suis pas certain sur ce que tu entends par "fermeture" d'une feuille !
Re,
Je cherche à intercepter la fermeture de la fenêtre générée par la propriété ShowWindow=True d'un graphique.
Mais je ne suis pas sur que ce soit possible !
-- François L
Francois L
Il y a moyen de contrôler certains aspects du graphe par un module de classe (voir les événements disponilbe)
Je joins un fichier exemple très simple http://cjoint.com/?lzrHiIe0Sh reste à voir si cela peut t'aider dans ta démarche !
Observe ce qui se passe si tu cliques sur le graphe et que tu conserve le bouton de la souris enfoncé.
Bonjour Denis,
Merci pour l'exemple...
Les modules de classe et moi, on est pas encore très intimes ! Faut qu'on apprennent à se connaître.
Pour l'instant, je n'ai pas réussi à adapter cela à ce que je veux faire mais ce n'est pas très grave. Je n'en ai pas vraiment besoin mais ça m'énerve de ne pas trouver de réponse à une question qui paraît simple et, en fait, ne l'est visiblement pas.
-- François L
Il y a moyen de contrôler certains aspects du graphe
par un module de classe (voir les événements disponilbe)
Je joins un fichier exemple très simple http://cjoint.com/?lzrHiIe0Sh
reste à voir si cela peut t'aider dans ta démarche !
Observe ce qui se passe si tu cliques sur le graphe et que tu
conserve le bouton de la souris enfoncé.
Bonjour Denis,
Merci pour l'exemple...
Les modules de classe et moi, on est pas encore très intimes ! Faut
qu'on apprennent à se connaître.
Pour l'instant, je n'ai pas réussi à adapter cela à ce que je veux faire
mais ce n'est pas très grave. Je n'en ai pas vraiment besoin mais ça
m'énerve de ne pas trouver de réponse à une question qui paraît simple
et, en fait, ne l'est visiblement pas.
Il y a moyen de contrôler certains aspects du graphe par un module de classe (voir les événements disponilbe)
Je joins un fichier exemple très simple http://cjoint.com/?lzrHiIe0Sh reste à voir si cela peut t'aider dans ta démarche !
Observe ce qui se passe si tu cliques sur le graphe et que tu conserve le bouton de la souris enfoncé.
Bonjour Denis,
Merci pour l'exemple...
Les modules de classe et moi, on est pas encore très intimes ! Faut qu'on apprennent à se connaître.
Pour l'instant, je n'ai pas réussi à adapter cela à ce que je veux faire mais ce n'est pas très grave. Je n'en ai pas vraiment besoin mais ça m'énerve de ne pas trouver de réponse à une question qui paraît simple et, en fait, ne l'est visiblement pas.
-- François L
MichDenis
Bonjour François,
A ) Fenêtre graphique -> tu peux m'expliquer à quoi elle sert à part de définir dans la barre de titre, l'objet sur lequel tu travailles....
B ) Pour la fermeture de cette fenêtre, dès qu'une cellule de la feuille est sélectionnée la fenêtre graphique se ferme...L'événement "Worksheet_SelectionChange" du module feuille pourrait être l'élément déclencheur pour connaître à quel moment la fenêtre s'est obligatoirement fermé si elle était ouverte.
C ) La commande Fenêtre graphique se retrouve sur 3 barres (built-in) d'excel. Le nom de ces barres de commande sont : 1 - Pilot Area 2 - Object/Plot 3 - View Cette commande a comme ID:= 2571 ...comme tu sais, pour une même commande même si elle apparaît sur plusieurs barres d'outils pour une question de convénience pour faciliter le travail de l'usager, elle conserve quand même le même ID
Il est possible via une petite procédure de modifier le "OnAction" l'action que doit exécuter cet ID. Pour ce faire, tu peux utiliser ce type de procédure : (ne fonctionne pas avec Excel 97, il faut utiliser un autre type de syntaxe)
'----------------------------- Sub Modifier_ID_2571_Task()
Dim C As CommandBarControl For Each C In Application.CommandBars.FindControls(ID:%71) C.OnAction = "NewTask" Next End Sub '-----------------------------
La procédure attribue à une variable " FenêtreGrapheVisible " la valeur 1 si pour le graphe désigné, l'usager demande l'affichage de la fenêtre '----------------------------- Sub NewTask()
If Feuil1.ChartObjects("Chart 4").Chart.Name = ActiveChart.Name Then FenêtreGrapheVisible = 1 End If ActiveChart.ShowWindow = True End Sub '-----------------------------
En utilisant cet événement de la feuille où est situé le graphe :
En effet dès qu'une cellule de la feuille est sélectionnée, la fenêtre graphique disparaît. '-------------------------- Private Sub Worksheet_SelectionChange(ByVal Target As Range) FenêtreGrapheVisible = 0 End Sub '--------------------------
En utilisant les événement Activate et Desactivate du ThisWorkbook, ou de la feuille... on arrive à gérer la commande dont le ID est 2571
et pour remettre l'action du ID à la normale :
'----------------------------- Sub Normal_ID_2571_Task()
Dim C As CommandBarControl For Each C In Application.CommandBars.FindControls(ID:%71) C.OnAction = "" Next End Sub '-----------------------------
"Francois L" a écrit dans le message de news: eWKw$
Il y a moyen de contrôler certains aspects du graphe par un module de classe (voir les événements disponilbe)
Je joins un fichier exemple très simple http://cjoint.com/?lzrHiIe0Sh reste à voir si cela peut t'aider dans ta démarche !
Observe ce qui se passe si tu cliques sur le graphe et que tu conserve le bouton de la souris enfoncé.
Bonjour Denis,
Merci pour l'exemple...
Les modules de classe et moi, on est pas encore très intimes ! Faut qu'on apprennent à se connaître.
Pour l'instant, je n'ai pas réussi à adapter cela à ce que je veux faire mais ce n'est pas très grave. Je n'en ai pas vraiment besoin mais ça m'énerve de ne pas trouver de réponse à une question qui paraît simple et, en fait, ne l'est visiblement pas.
-- François L
Bonjour François,
A ) Fenêtre graphique -> tu peux m'expliquer à quoi elle sert à part de définir
dans la barre de titre, l'objet sur lequel tu travailles....
B ) Pour la fermeture de cette fenêtre, dès qu'une cellule de la feuille est sélectionnée
la fenêtre graphique se ferme...L'événement "Worksheet_SelectionChange" du
module feuille pourrait être l'élément déclencheur pour connaître à quel moment
la fenêtre s'est obligatoirement fermé si elle était ouverte.
C ) La commande Fenêtre graphique se retrouve sur 3 barres (built-in) d'excel.
Le nom de ces barres de commande sont :
1 - Pilot Area
2 - Object/Plot
3 - View
Cette commande a comme ID:= 2571 ...comme tu sais, pour une même commande
même si elle apparaît sur plusieurs barres d'outils pour une question de convénience
pour faciliter le travail de l'usager, elle conserve quand même le même ID
Il est possible via une petite procédure de modifier le "OnAction" l'action que doit
exécuter cet ID. Pour ce faire, tu peux utiliser ce type de procédure :
(ne fonctionne pas avec Excel 97, il faut utiliser un autre type de syntaxe)
'-----------------------------
Sub Modifier_ID_2571_Task()
Dim C As CommandBarControl
For Each C In Application.CommandBars.FindControls(ID:%71)
C.OnAction = "NewTask"
Next
End Sub
'-----------------------------
La procédure attribue à une variable " FenêtreGrapheVisible "
la valeur 1 si pour le graphe désigné, l'usager demande
l'affichage de la fenêtre
'-----------------------------
Sub NewTask()
If Feuil1.ChartObjects("Chart 4").Chart.Name = ActiveChart.Name Then
FenêtreGrapheVisible = 1
End If
ActiveChart.ShowWindow = True
End Sub
'-----------------------------
En utilisant cet événement de la feuille où est situé le graphe :
En effet dès qu'une cellule de la feuille est sélectionnée, la
fenêtre graphique disparaît.
'--------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
FenêtreGrapheVisible = 0
End Sub
'--------------------------
En utilisant les événement Activate et Desactivate du ThisWorkbook,
ou de la feuille... on arrive à gérer la commande dont le ID est 2571
et pour remettre l'action du ID à la normale :
'-----------------------------
Sub Normal_ID_2571_Task()
Dim C As CommandBarControl
For Each C In Application.CommandBars.FindControls(ID:%71)
C.OnAction = ""
Next
End Sub
'-----------------------------
"Francois L" <francois@noadress.fr.invalid> a écrit dans le message de news:
eWKw$JTEHHA.3836@TK2MSFTNGP02.phx.gbl...
Il y a moyen de contrôler certains aspects du graphe
par un module de classe (voir les événements disponilbe)
Je joins un fichier exemple très simple http://cjoint.com/?lzrHiIe0Sh
reste à voir si cela peut t'aider dans ta démarche !
Observe ce qui se passe si tu cliques sur le graphe et que tu
conserve le bouton de la souris enfoncé.
Bonjour Denis,
Merci pour l'exemple...
Les modules de classe et moi, on est pas encore très intimes ! Faut
qu'on apprennent à se connaître.
Pour l'instant, je n'ai pas réussi à adapter cela à ce que je veux faire
mais ce n'est pas très grave. Je n'en ai pas vraiment besoin mais ça
m'énerve de ne pas trouver de réponse à une question qui paraît simple
et, en fait, ne l'est visiblement pas.
A ) Fenêtre graphique -> tu peux m'expliquer à quoi elle sert à part de définir dans la barre de titre, l'objet sur lequel tu travailles....
B ) Pour la fermeture de cette fenêtre, dès qu'une cellule de la feuille est sélectionnée la fenêtre graphique se ferme...L'événement "Worksheet_SelectionChange" du module feuille pourrait être l'élément déclencheur pour connaître à quel moment la fenêtre s'est obligatoirement fermé si elle était ouverte.
C ) La commande Fenêtre graphique se retrouve sur 3 barres (built-in) d'excel. Le nom de ces barres de commande sont : 1 - Pilot Area 2 - Object/Plot 3 - View Cette commande a comme ID:= 2571 ...comme tu sais, pour une même commande même si elle apparaît sur plusieurs barres d'outils pour une question de convénience pour faciliter le travail de l'usager, elle conserve quand même le même ID
Il est possible via une petite procédure de modifier le "OnAction" l'action que doit exécuter cet ID. Pour ce faire, tu peux utiliser ce type de procédure : (ne fonctionne pas avec Excel 97, il faut utiliser un autre type de syntaxe)
'----------------------------- Sub Modifier_ID_2571_Task()
Dim C As CommandBarControl For Each C In Application.CommandBars.FindControls(ID:%71) C.OnAction = "NewTask" Next End Sub '-----------------------------
La procédure attribue à une variable " FenêtreGrapheVisible " la valeur 1 si pour le graphe désigné, l'usager demande l'affichage de la fenêtre '----------------------------- Sub NewTask()
If Feuil1.ChartObjects("Chart 4").Chart.Name = ActiveChart.Name Then FenêtreGrapheVisible = 1 End If ActiveChart.ShowWindow = True End Sub '-----------------------------
En utilisant cet événement de la feuille où est situé le graphe :
En effet dès qu'une cellule de la feuille est sélectionnée, la fenêtre graphique disparaît. '-------------------------- Private Sub Worksheet_SelectionChange(ByVal Target As Range) FenêtreGrapheVisible = 0 End Sub '--------------------------
En utilisant les événement Activate et Desactivate du ThisWorkbook, ou de la feuille... on arrive à gérer la commande dont le ID est 2571
et pour remettre l'action du ID à la normale :
'----------------------------- Sub Normal_ID_2571_Task()
Dim C As CommandBarControl For Each C In Application.CommandBars.FindControls(ID:%71) C.OnAction = "" Next End Sub '-----------------------------
"Francois L" a écrit dans le message de news: eWKw$
Il y a moyen de contrôler certains aspects du graphe par un module de classe (voir les événements disponilbe)
Je joins un fichier exemple très simple http://cjoint.com/?lzrHiIe0Sh reste à voir si cela peut t'aider dans ta démarche !
Observe ce qui se passe si tu cliques sur le graphe et que tu conserve le bouton de la souris enfoncé.
Bonjour Denis,
Merci pour l'exemple...
Les modules de classe et moi, on est pas encore très intimes ! Faut qu'on apprennent à se connaître.
Pour l'instant, je n'ai pas réussi à adapter cela à ce que je veux faire mais ce n'est pas très grave. Je n'en ai pas vraiment besoin mais ça m'énerve de ne pas trouver de réponse à une question qui paraît simple et, en fait, ne l'est visiblement pas.
-- François L
MichDenis
Le nom de la barre d'outils est "Plot area" et non "Pilot Area" tout le monde aura compris...
"MichDenis" a écrit dans le message de news: % Bonjour François,
A ) Fenêtre graphique -> tu peux m'expliquer à quoi elle sert à part de définir dans la barre de titre, l'objet sur lequel tu travailles....
B ) Pour la fermeture de cette fenêtre, dès qu'une cellule de la feuille est sélectionnée la fenêtre graphique se ferme...L'événement "Worksheet_SelectionChange" du module feuille pourrait être l'élément déclencheur pour connaître à quel moment la fenêtre s'est obligatoirement fermé si elle était ouverte.
C ) La commande Fenêtre graphique se retrouve sur 3 barres (built-in) d'excel. Le nom de ces barres de commande sont : 1 - Pilot Area 2 - Object/Plot 3 - View Cette commande a comme ID:= 2571 ...comme tu sais, pour une même commande même si elle apparaît sur plusieurs barres d'outils pour une question de convénience pour faciliter le travail de l'usager, elle conserve quand même le même ID
Il est possible via une petite procédure de modifier le "OnAction" l'action que doit exécuter cet ID. Pour ce faire, tu peux utiliser ce type de procédure : (ne fonctionne pas avec Excel 97, il faut utiliser un autre type de syntaxe)
'----------------------------- Sub Modifier_ID_2571_Task()
Dim C As CommandBarControl For Each C In Application.CommandBars.FindControls(ID:%71) C.OnAction = "NewTask" Next End Sub '-----------------------------
La procédure attribue à une variable " FenêtreGrapheVisible " la valeur 1 si pour le graphe désigné, l'usager demande l'affichage de la fenêtre '----------------------------- Sub NewTask()
If Feuil1.ChartObjects("Chart 4").Chart.Name = ActiveChart.Name Then FenêtreGrapheVisible = 1 End If ActiveChart.ShowWindow = True End Sub '-----------------------------
En utilisant cet événement de la feuille où est situé le graphe :
En effet dès qu'une cellule de la feuille est sélectionnée, la fenêtre graphique disparaît. '-------------------------- Private Sub Worksheet_SelectionChange(ByVal Target As Range) FenêtreGrapheVisible = 0 End Sub '--------------------------
En utilisant les événement Activate et Desactivate du ThisWorkbook, ou de la feuille... on arrive à gérer la commande dont le ID est 2571
et pour remettre l'action du ID à la normale :
'----------------------------- Sub Normal_ID_2571_Task()
Dim C As CommandBarControl For Each C In Application.CommandBars.FindControls(ID:%71) C.OnAction = "" Next End Sub '-----------------------------
"Francois L" a écrit dans le message de news: eWKw$
Il y a moyen de contrôler certains aspects du graphe par un module de classe (voir les événements disponilbe)
Je joins un fichier exemple très simple http://cjoint.com/?lzrHiIe0Sh reste à voir si cela peut t'aider dans ta démarche !
Observe ce qui se passe si tu cliques sur le graphe et que tu conserve le bouton de la souris enfoncé.
Bonjour Denis,
Merci pour l'exemple...
Les modules de classe et moi, on est pas encore très intimes ! Faut qu'on apprennent à se connaître.
Pour l'instant, je n'ai pas réussi à adapter cela à ce que je veux faire mais ce n'est pas très grave. Je n'en ai pas vraiment besoin mais ça m'énerve de ne pas trouver de réponse à une question qui paraît simple et, en fait, ne l'est visiblement pas.
-- François L
Le nom de la barre d'outils est "Plot area" et non "Pilot Area"
tout le monde aura compris...
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
%238WahKWEHHA.4024@TK2MSFTNGP04.phx.gbl...
Bonjour François,
A ) Fenêtre graphique -> tu peux m'expliquer à quoi elle sert à part de définir
dans la barre de titre, l'objet sur lequel tu travailles....
B ) Pour la fermeture de cette fenêtre, dès qu'une cellule de la feuille est sélectionnée
la fenêtre graphique se ferme...L'événement "Worksheet_SelectionChange" du
module feuille pourrait être l'élément déclencheur pour connaître à quel moment
la fenêtre s'est obligatoirement fermé si elle était ouverte.
C ) La commande Fenêtre graphique se retrouve sur 3 barres (built-in) d'excel.
Le nom de ces barres de commande sont :
1 - Pilot Area
2 - Object/Plot
3 - View
Cette commande a comme ID:= 2571 ...comme tu sais, pour une même commande
même si elle apparaît sur plusieurs barres d'outils pour une question de convénience
pour faciliter le travail de l'usager, elle conserve quand même le même ID
Il est possible via une petite procédure de modifier le "OnAction" l'action que doit
exécuter cet ID. Pour ce faire, tu peux utiliser ce type de procédure :
(ne fonctionne pas avec Excel 97, il faut utiliser un autre type de syntaxe)
'-----------------------------
Sub Modifier_ID_2571_Task()
Dim C As CommandBarControl
For Each C In Application.CommandBars.FindControls(ID:%71)
C.OnAction = "NewTask"
Next
End Sub
'-----------------------------
La procédure attribue à une variable " FenêtreGrapheVisible "
la valeur 1 si pour le graphe désigné, l'usager demande
l'affichage de la fenêtre
'-----------------------------
Sub NewTask()
If Feuil1.ChartObjects("Chart 4").Chart.Name = ActiveChart.Name Then
FenêtreGrapheVisible = 1
End If
ActiveChart.ShowWindow = True
End Sub
'-----------------------------
En utilisant cet événement de la feuille où est situé le graphe :
En effet dès qu'une cellule de la feuille est sélectionnée, la
fenêtre graphique disparaît.
'--------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
FenêtreGrapheVisible = 0
End Sub
'--------------------------
En utilisant les événement Activate et Desactivate du ThisWorkbook,
ou de la feuille... on arrive à gérer la commande dont le ID est 2571
et pour remettre l'action du ID à la normale :
'-----------------------------
Sub Normal_ID_2571_Task()
Dim C As CommandBarControl
For Each C In Application.CommandBars.FindControls(ID:%71)
C.OnAction = ""
Next
End Sub
'-----------------------------
"Francois L" <francois@noadress.fr.invalid> a écrit dans le message de news:
eWKw$JTEHHA.3836@TK2MSFTNGP02.phx.gbl...
Il y a moyen de contrôler certains aspects du graphe
par un module de classe (voir les événements disponilbe)
Je joins un fichier exemple très simple http://cjoint.com/?lzrHiIe0Sh
reste à voir si cela peut t'aider dans ta démarche !
Observe ce qui se passe si tu cliques sur le graphe et que tu
conserve le bouton de la souris enfoncé.
Bonjour Denis,
Merci pour l'exemple...
Les modules de classe et moi, on est pas encore très intimes ! Faut
qu'on apprennent à se connaître.
Pour l'instant, je n'ai pas réussi à adapter cela à ce que je veux faire
mais ce n'est pas très grave. Je n'en ai pas vraiment besoin mais ça
m'énerve de ne pas trouver de réponse à une question qui paraît simple
et, en fait, ne l'est visiblement pas.
Le nom de la barre d'outils est "Plot area" et non "Pilot Area" tout le monde aura compris...
"MichDenis" a écrit dans le message de news: % Bonjour François,
A ) Fenêtre graphique -> tu peux m'expliquer à quoi elle sert à part de définir dans la barre de titre, l'objet sur lequel tu travailles....
B ) Pour la fermeture de cette fenêtre, dès qu'une cellule de la feuille est sélectionnée la fenêtre graphique se ferme...L'événement "Worksheet_SelectionChange" du module feuille pourrait être l'élément déclencheur pour connaître à quel moment la fenêtre s'est obligatoirement fermé si elle était ouverte.
C ) La commande Fenêtre graphique se retrouve sur 3 barres (built-in) d'excel. Le nom de ces barres de commande sont : 1 - Pilot Area 2 - Object/Plot 3 - View Cette commande a comme ID:= 2571 ...comme tu sais, pour une même commande même si elle apparaît sur plusieurs barres d'outils pour une question de convénience pour faciliter le travail de l'usager, elle conserve quand même le même ID
Il est possible via une petite procédure de modifier le "OnAction" l'action que doit exécuter cet ID. Pour ce faire, tu peux utiliser ce type de procédure : (ne fonctionne pas avec Excel 97, il faut utiliser un autre type de syntaxe)
'----------------------------- Sub Modifier_ID_2571_Task()
Dim C As CommandBarControl For Each C In Application.CommandBars.FindControls(ID:%71) C.OnAction = "NewTask" Next End Sub '-----------------------------
La procédure attribue à une variable " FenêtreGrapheVisible " la valeur 1 si pour le graphe désigné, l'usager demande l'affichage de la fenêtre '----------------------------- Sub NewTask()
If Feuil1.ChartObjects("Chart 4").Chart.Name = ActiveChart.Name Then FenêtreGrapheVisible = 1 End If ActiveChart.ShowWindow = True End Sub '-----------------------------
En utilisant cet événement de la feuille où est situé le graphe :
En effet dès qu'une cellule de la feuille est sélectionnée, la fenêtre graphique disparaît. '-------------------------- Private Sub Worksheet_SelectionChange(ByVal Target As Range) FenêtreGrapheVisible = 0 End Sub '--------------------------
En utilisant les événement Activate et Desactivate du ThisWorkbook, ou de la feuille... on arrive à gérer la commande dont le ID est 2571
et pour remettre l'action du ID à la normale :
'----------------------------- Sub Normal_ID_2571_Task()
Dim C As CommandBarControl For Each C In Application.CommandBars.FindControls(ID:%71) C.OnAction = "" Next End Sub '-----------------------------
"Francois L" a écrit dans le message de news: eWKw$
Il y a moyen de contrôler certains aspects du graphe par un module de classe (voir les événements disponilbe)
Je joins un fichier exemple très simple http://cjoint.com/?lzrHiIe0Sh reste à voir si cela peut t'aider dans ta démarche !
Observe ce qui se passe si tu cliques sur le graphe et que tu conserve le bouton de la souris enfoncé.
Bonjour Denis,
Merci pour l'exemple...
Les modules de classe et moi, on est pas encore très intimes ! Faut qu'on apprennent à se connaître.
Pour l'instant, je n'ai pas réussi à adapter cela à ce que je veux faire mais ce n'est pas très grave. Je n'en ai pas vraiment besoin mais ça m'énerve de ne pas trouver de réponse à une question qui paraît simple et, en fait, ne l'est visiblement pas.
-- François L
Francois L
Le nom de la barre d'outils est "Plot area" et non "Pilot Area" tout le monde aura compris...
Re,
Merci Denis... C'est bien ce que je pensais, c'est pas complètement simple !
Je me disais bien aussi que tu trouverais bien un truc.
Quand à la première question du post précédent "A quoi ça sert ?". On pourrait répondre que c'est un moyen d'obliger au recalcul de du graphique qui est généré par VBA...
-- François L
Le nom de la barre d'outils est "Plot area" et non "Pilot Area"
tout le monde aura compris...
Re,
Merci Denis... C'est bien ce que je pensais, c'est pas complètement simple !
Je me disais bien aussi que tu trouverais bien un truc.
Quand à la première question du post précédent "A quoi ça sert ?". On
pourrait répondre que c'est un moyen d'obliger au recalcul de du
graphique qui est généré par VBA...
Le nom de la barre d'outils est "Plot area" et non "Pilot Area" tout le monde aura compris...
Re,
Merci Denis... C'est bien ce que je pensais, c'est pas complètement simple !
Je me disais bien aussi que tu trouverais bien un truc.
Quand à la première question du post précédent "A quoi ça sert ?". On pourrait répondre que c'est un moyen d'obliger au recalcul de du graphique qui est généré par VBA...