IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Connaitre objet sélectionné [XL-2003]


Sujet :

Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Novembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Connaitre objet sélectionné
    Bonjour le forum,

    J'ai créé un menu contextuel pour faire des modifs sur le graphique sélectionné.
    Problème : je ne veux activer ce menu que lorsqu'un objet graphique (onglet ou incorporé) est sélectionné.
    J'ai essayé typename, typeof, et selection.name, mais les résultats dépendent de ce qui est sélectionné.
    Par exemple, si je sélectionne la légende, comment faire, sans boucle ou comparaison à un tableau que je suis sur l'objet "Chart1", de façon à ne modifier que les paramètres de ce graphiques ?

    Merci pour votre aide,
    Thom's

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    Dans le module ThisWorkbook, mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim ClassModule As New EventClassModule, Teste As Boolean
     
    Sub InitializeChart()
        Set ClassModule.ChartClass = _
            Sheets(1).ChartObjects(1).Chart
    End Sub
    Dans un module standard, mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Teste As Boolean
    Crée un module de classe, nomme-le "EventClassModule"

    Dans ce module, mets :

    Public WithEvents ChartClass As Chart

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub ChartClass_MouseMove(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long)
        'mets le menu contextuel
        Teste = True
        Exit Sub
    End Sub
    J'ai mis en commentaire les lignes où tu dois insérer ou ôter tes commandes du menu contextuel.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  3. #3
    Membre chevronné
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 036
    Points : 1 917
    Points
    1 917
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Citation Envoyé par Thoms_69 Voir le message
    ...Par exemple, si je sélectionne la légende, comment faire, sans boucle ou comparaison à un tableau que je suis sur l'objet "Chart1", de façon à ne modifier que les paramètres de ce graphiques ?
    En plus de la solution de Daniels te permettant une gestion plus fine de pas mal de choses, tu as ActiveChart.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        Dim c As Chart
        Set c = ActiveChart
        If c Is Nothing Then
            '...
        Else
            '...
        End If
    Ousmane


    Quand on tombe dans l'eau, la pluie ne fait plus peur.

  4. #4
    Candidat au Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Novembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bonjour et merci pour vos réponses.

    J'ai dû mal m'exprimer, car je voudrais ceci pour un graphique quelconque sur une feuille quelconque. Donc le InitializeChart() doit être un peu plus compliqué !
    J'ai cependant essayé la méthode de Daniel qui avait un fonctionnement erratique. Tout rentre dans l'ordre en utilisant ChartClass_Activate()

    Entretemps, j'ai réfléchi (si, si !) : j'ajoute mon sous-menu contextuel à celui du menu graphique, lequel n'apparaît que quand on est sur un graphique ! Donc inutile de savoir si on en a sélectionné un ! Il suffit d'ajouter le sous-menu à l'ouverture du classeur et de resetter la barre à la fermeture.

    Mon problème n'en était pas un et se trouve résolu.

    Il me reste à trouver le menu contextuel d'une feuille graphique, celui de l'objet incorporé (Application.CommandBars("Object/Plot").Controls.Add) ne donne rien sur la feuille graphique.

    Merci encore.
    Thom's

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/01/2008, 16h47
  2. Récupérer objet sélectionné d'un graphe
    Par gritche2 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/09/2007, 17h35
  3. Réponses: 1
    Dernier message: 24/01/2007, 18h20
  4. [JTree] Récupérer l'objet sélectionné
    Par daedric dans le forum Composants
    Réponses: 2
    Dernier message: 01/10/2005, 19h19
  5. [JComboBox] Récupérer l'objet sélectionné
    Par Terminator dans le forum Composants
    Réponses: 3
    Dernier message: 14/09/2005, 12h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo