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

Macros et VBA Excel Discussion :

(vba excel) Copie automatique de charts


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 39
    Points : 22
    Points
    22
    Par défaut (vba excel) Copie automatique de charts
    Bonjour,

    mon pb est le suivant:
    Je dispose d'un classeur contenant des graphiques ds des 'charts' et non ds des 'sheets'.
    J'aimerais suivant certains critères copiés automatiquement certains graphiques ds une mm sheet, et donc bien sur les bien les loger.

    J'ai essayé d'enregistrer une macro et regarder le code.
    j'obtiens ceci:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sheets("XX Chart").Select   
        Sheets("XXChart").Copy Before:=Sheets(4)
        Sheets("XX Chart (2)").Select
        ActiveChart.PlotArea.Select
        ActiveChart.Location Where:=xlLocationAsObject, Name:="Charts Summary"
        ActiveSheet.Shapes("XX Chart").IncrementLeft -179.25
        ActiveSheet.Shapes("Chart 6").IncrementTop -147#
        ActiveSheet.Shapes("Chart 6").ScaleHeight 0.62, msoFalse, msoScaleFromTopLeft
        ActiveSheet.Shapes("Chart 6").ScaleWidth 0.72, msoFalse, msoScaleFromTopLeft

    Mon pb est que je ne sais pas à quoi correspond "cahart 6". Du coup je ne sais pas comment lui dire de selectionner tel ou tel graphe.
    N'est il pas possible d'utiliser directement des noms?

    J'ai essayé des activechart.name=myname, ensuite remplacer "chart 6" par myname mais sans succès.


    Merci de votre aide.

  2. #2
    Membre habitué Avatar de conconbrr
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Points : 198
    Points
    198
    Par défaut
    Pour donner un nom à un graphique, il faut renommer le chartobjects :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    worksheets(1).chartobjects(1).name="yoyo"
    renommera ton premier graphique sous le nom "yoyo"

    Apres il te suffit de faire par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub test()
     
       Dim NBCH As String
       Dim J As Integer
     
       NBCH = Worksheets(1).ChartObjects.Count
       For J = 1 To NBCH
           Worksheets(1).ChartObjects(J).Name = "yoyo" & J
       Next
     
    End Sub
    pour renommer tous les graphiques de la page avec un nom générique : yoyo1, yoyo2, ...

    J'espère que ça répond à peu près à ta question?

Discussions similaires

  1. [VBA Excel] Copie d'un tableau lignes filtrées comprises
    Par gojira dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/08/2006, 12h53
  2. [VBA Excel] - Copie Aléatoire de données entre 2 feuilles
    Par ethan64 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/07/2006, 17h34
  3. [VBA Excel] Copie automatique d'une donnée
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/07/2006, 13h21
  4. [VBA][Excel] Copie de feuille a l'identique
    Par le_sonic dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/01/2006, 16h48
  5. [VBA][Excel] Copie écran
    Par KOFJCH dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 12/12/2005, 15h01

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