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 :

Selectionner un axe (une série ou tout objet d'un graphique) par macro Excel.


Sujet :

Excel

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Retraitée
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraitée

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Selectionner un axe (une série ou tout objet d'un graphique) par macro Excel.
    Bonjour,
    J'utilise (encore ) des macro Excel (pas visual) et en passant sur une nouvelle version d'Excel (office 2010), je n'arrive plus à sélectionner les éléments de mon graphique via ces macros :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    =   SELECTIONNER("Série1")
    =   SELECTIONNER("Série2")
    =   SELECTIONNER("Axe Horizontal")
    =   SELECTIONNER("Axe Vertical")
    =   SELECTIONNER("Axe Horizontal")
    =   SELECTIONNER("Zone de texte 2")
    avec ces instructions, j'obtiens toujours "Erreur de macro à la cellule...."

    Alors que, auparavant, je rectifiais facilement l'échelle d'un graphe avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    =   SELECTIONNER("Axe Horizontal")
    =   ECHELLE(W_HeureMIN;W_HeureMAX;W_Echelle;W_Echelle)
    --> 4 variables calculés auparavant

    Comment se positionner sur ces objets du graphe (Axe / Série / etc.) par macro avec ma nouvelle version d'excel (office 2010) ?
    La macro "=ECHELLE" fonctionnera-t-elle comme auparavant ?
    Merci pour votre aide.
    Mathilde

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Dans l'aide VBA, regarde les membres de l'objet Chart.
    Tu y trouveras tout ce que tu souhaites.

    Petit conseil pour éviter une erreur de débutant : quand on passe des macro Excel au macro VBA, on a tendance à utiliser des Select à outrance (l'équivalent de SELECTIONNER dans les macro Excel). Ce n'est plus nécessaire.

    Par exemple, pour changer la couleur de fond de ta légende, il n'est pas utile de faire Chart(MonGraph).Legend.Select et de changer ensuite la couleur de fond de la sélection.
    Il est plus simple d'appliquer directement la propriété sur l'objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Chart(MonGraph).Legend.Format.Fill.ForeColor.RGB = RGB(128, 0, 0)

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Retraitée
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraitée

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Euh ... Je souhaite rester (adapter) mes macro Excel, pas passer sous visual

  4. #4
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Là, ce n'est pas un informaticien qu'il le faut mais un historien.

    Plus sérieusement, je te conseille de franchir le cap. Les macro Excel pur, ce n'est pas très pérenne.
    Perso, j'ai sauté le pas il y a quelques années pour transformer la multitude de boutons qui parsèment ma barre d'icones et je m'en porte bien mieux.

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Retraitée
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraitée

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Menhir, c'est sympa (et comique ) d'apporter un commentaire sur le coté saugrenu (j’en suis conscient !) de ma question. Mais, comme je le précise bien, c'est une solution avec des macros Excel que je cherche. J’ai un gros programme qui effectue des calculs et consolidations de données avant de restituer en qq lignes une synthèse graphique. Je ne vais pas TOUT réécrire pour 2 lignes à modifier. D’autant plus que (hélas) je n’ai pas de connaissance de Visual…
    S’il reste des adaptes/experts(historiens) de cette programmation sous Excel, merci de leur aide .

  6. #6
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Je vais sans doute sembler insister lourdement mais, s'enliser dans un passif n'est pas toujours bon.
    Une fois qu'on a découvert les possibilités du VBA et la facilité d'utilisation et la clarté de conception comparé aux macrolangage Excel, on ne regrette vraiment pas.
    Peut-être que faire cette transformation va te prendre quelques heures mais elle va aussi t'ouvrir un vaste champ de possibilités.
    J'en parle en connaissance de cause puisque j'ai moi-même fait ce chemin et que, aujourd'hui, ça me permet de développer de nombreux outils qui me facilitent la vie et me font gagner du temps.

    Comme toute formation, c'est un investissement.

    Ton programme est "gros" à quel point ?
    Si c'est une centaine de ligne, tu peux peut-être le mettre ici et on pourra t'aider à faire la migration.

  7. #7
    Nouveau Candidat au Club
    Femme Profil pro
    Retraitée
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraitée

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Menhir, je pense avoir posé LA BONNE QUESTION et tes commentaires n’apportent RIEN à mon problème .
    Je suis assez grande pour comprendre l’intérêt (et les inconvénients) de Visual. Avec plus de mille lignes de code pour travailler sur une masse de données considérable et d’origine multiple, c’est bien dans la modification de ces 2 instructions que je gagnerai du temps. D’autant plus que Visual n’est pas LA REFERENCE question performance. Aujourd’hui, je m’en sorts en m’appuyant sur un de mes micros avec un vieux Excel. Mais ce n’est pas le micro le plus performant...

    Rappel de ma question : Comment sélectionner les objets d’un graphique (« Axe Vertical », « Axe Horizontal », « Série1 », etc.) depuis la version Microsoft Office Excel 2007 (12.0) avec une macro EXCEL. Ces objets graphiques portent probablement un autre nom… ?

    Ci-dessous, les instructions fonctionnant dans la version précédente (2003) et bloquant l’exécution avec "Erreur de macro à la cellule...." dans sa version 2007 lorsque je mets à jour un graphique constitué depuis un "Template".

    >>>> Pour faire apparaitre la date du traitement sur le graphique.
    = SELECTIONNER("Zone de texte 1")
    = FORMULE(TEXTE(MAINTENANT();"jjj jj-mmm-aaaa - hh:mm"))
    >>>> Pour adapter l’échelle sur le graphique (les données W_HeureMIN et MAX ainsi que W_Echelle sont calculées par ailleurs).
    = SELECTIONNER("Axe Horizontal")
    = ECHELLE(W_HeureMIN;W_HeureMAX;W_Echelle;W_Echelle)

  8. #8
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Bonne chance

  9. #9
    Nouveau Candidat au Club
    Femme Profil pro
    Retraitée
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraitée

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Je progresse (doucement) …
    Pour sélectionner l’axe, cela ne marche plus avec : SELECTIONNER("Axe Horizontal"), mais c'est bon avec : SELECTIONNER("Axe 2").
    Ensuite, pour modifier l’échelle, c’est bon.
    Avec :
    SELECTIONNER("Axe 2").
    ECHELLE(W_HeureMIN;W_HeureMAX;W_Echelle;W_Echelle)
    quand je clique sur le graphique et active manuellement ces 2 instructions, Excel fait bien les choses.

    Mais je me heurte à un nouveau problème. En activant le graphique par ma macro, il semble que je ne me trouve pas positionnée "dans le graphique". Je m’explique. Si j’utilise l’ensemble de mon code, quand il active le graphique (ACTIVER.CLASSEUR(…)), je le vois bien apparaitre. Puis quand il passe à l’instruction SELECTIONNER("Axe 2"), j’ai un KO (Erreur de macro à la cellule : …). Si mon graphe s’affiche bien, il semble qu’aucun objet ne peut alors y être sélectionné. Comme si je restais en dehors du graphique. Il me manque comme un «clic» sur celui-ci avant de pouvoir le modifier. D’ailleurs, en cliquant à l’intérieur du graphe et en reprenant la macro depuis l’instruction KO, cela marche…
    Si quelqu'un a une idée pour se positionner DANS ce graphe depuis ma macro ?

  10. #10
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    L dernière fois que j'ai essayé de t'aider, je me suis pris une volée ponctuée d'un .
    Je suis comme le corbeau de la fable : je ne me laisse pas prendre deux fois.

  11. #11
    Nouveau Candidat au Club
    Femme Profil pro
    Retraitée
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraitée

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Menhir, bon, je ne vais pas mettre un second sur ta dernière réponse… C’est sympa de vouloir aider tout le monde . Mais ici, tes interventions font plus penser à du polluriel que de l’aide. Une première réponse pour me conseiller Visual, OK. Mais 5 messages, sans aucune aide in fine… C’est ton compteur de messages que tu veux faire monter ?
    Bon, tes avis sur d’autres questions semblent plus utiles et je suis totalement d’accord sur ton conseil d’utiliser les références au format (L1C1) plutôt que (A1), surtout dans les programmes.
    Reste que, je n’ai pas eu de temps pour chercher et que je ne vois pas d’ailleurs où chercher pour régler mon problème pour sélectionner un objet du graphe avec ma macro… Bien qu’il soit bien affiché à l’écran, lorsque j’ouvre le template, il semble que je ne suis pas positionnée dessus ? Mais si je clique sur le graphe et reprends ma macro, cela marche

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/11/2008, 10h48
  2. Afficher une grille sur un objet axes
    Par ptit-nico dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 10/07/2008, 11h00
  3. Réponses: 5
    Dernier message: 01/08/2007, 11h15
  4. [POO] appel d'une méthode d'un autre fichier, le tout objet
    Par aaaaaaaa dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/07/2007, 19h43
  5. Une série de JButton superposée et centrée sur l'axe Y d'un BorderLayout.EAST?
    Par sdurand dans le forum Agents de placement/Fenêtres
    Réponses: 10
    Dernier message: 16/10/2006, 15h59

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