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 :

Séries d'un graphique issues d'une macro [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 41
    Par défaut Séries d'un graphique issues d'une macro
    Bonjour à tous,

    J'ai réalisé une macro qui permet de calculer des données de sorties en fonction des données d'entrées saisies dans la feuille Excel. A présent je voudrai tracer un graphique avec les tableaux que j'ai calculés.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    Dim It1(51), It2(51), It3(51), Inductance(51) As Variant
     
    For Ll = 0 To 0.0001 Step 0.00002
        compteur = compteur + 1
        Lt = Lc + Ll
        T = 2 * Lt / Res
        F = 1 / (2 * PI * Sqr(Lt * C))
        w = 2 * PI * F
        A1 = 2 * Vc1 / (Lt * w)
        A2 = 1.5 * Vc1 / (Lt * w)
        A3 = Vc1 / (Lt * w)
        It1(compteur) = A1 * Exp(-tmes / T) * Sin(w * tmes)
        It2(compteur) = A2 * Exp(-tmes / T) * Sin(w * tmes)
        It3(compteur) = A3 * Exp(-tmes / T) * Sin(w * tmes)
        Inductance(compteur) = Ll
    Next Ll   
     
      Charts.Add
        ActiveChart.ChartType = xlXYScatterLinesNoMarkers
        ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("F8")
        ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"   
    ActiveChart.SeriesCollection(1).XValues = Inductance()
        ActiveChart.SeriesCollection(1).Values = It1()
        ActiveChart.SeriesCollection(2).Values = It2()
        ActiveChart.SeriesCollection(3).Values = It3()
    Je n'est pas inséré tout mon code mais seulement les parties concernant mon problème.

    Ce sont les dernières lignes qui posent problème, l'erreur d'execution '1004' survient (Erreur définie par l'application ou par l'objet).
    Quel code dois-je entrer pour affecter aux séries du graphique les tableaux It1(), It2(), It3() et Inductance() que j'ai calculés?

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Pour faire un graphique il me semble que tu doit inscrire les données dans une feuille et utilisé la plage de la feuille comme source du graphique
    Tu ne peux pas directement utilisé des variables tableaux

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 41
    Par défaut
    Je voulais éviter cette méthode pour la "beauté" du code, mais si il n'y a pas d'autres solutions je le ferai.

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Dans la mesure où tu crées un nouveau graph, tu dois aussi créer les séries (*****)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub Test()
    Dim Tablo1, Tablo2, Tablo3
        Tablo1 = Array("papa", "maman", "la bonne", "le chien", "le chat", "le canari", "la tortue", "et moi")
        Tablo2 = Array(1, 3, 5, 7, 11, 13, 17, 19)
        Tablo3 = Array(1, 7, 9, 12, 15, 17, 18, 24)
        Charts.Add
        ActiveChart.ChartType = xlLineMarkers
        ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("I6")
        ActiveChart.SeriesCollection.NewSeries 'Ici *****
        ActiveChart.SeriesCollection(1).XValues = Tablo1
        ActiveChart.SeriesCollection(1).Values = Tablo2
        ActiveChart.SeriesCollection.NewSeries ' et ici *****
        ActiveChart.SeriesCollection(2).Values = Tablo3
        ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
    End Sub
    Bonne journée

    Edit
    Citation Envoyé par Krovax Voir le message
    Pour faire un graphique il me semble que tu doit inscrire les données dans une feuille et utilisé la plage de la feuille comme source du graphique
    Tu ne peux pas directement utilisé des variables tableaux
    Eh non ! enfin si !
    Je n'avais pas vu ta réponse, Krovax, mais jète un oeil dans l'aide en ligne. Extrait :
    Citation Envoyé par l'aide en ligne à Values, Propriété
    Cet exemple montre comment définir les valeurs d'une série à partir d'une plage.

    Charts("Chart1").SeriesCollection(1).Values = _
    Worksheets("Sheet1").Range("C5:T5")
    Pour affecter une constante à chaque point de données, vous devez utiliser un tableau.

    Charts("Chart1").SeriesCollection(1).Values = _
    Array(1, 3, 5, 7, 11, 13, 17, 19)
    Faut pas oublier F1 !

  5. #5
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Effectivement, pris d'un doute j'avais édité mon message pour rajouter le "il me semble". Prochaine fois je pousserais plus loin mes investigations concernant mes doutes

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 41
    Par défaut
    J'ai cherché à utiliser l'instruction "Array", mais je suis confronté à deux problèmes:
    1) Comment définir un Array de 50 cases
    2) Comment incrémenter la case du tableau dans laquelle je stocke le résultat de mes équations It1,It2... (Ces équations sont dans une boucle for et sont calculés 50 fois)
    Ceux que j'ai trouvé dans l'aide n'a pas marché

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu n'es pas obligé d'utiliser "Array". Lis bien ce que je t'ai mis, ton problème ne vient pas de la construction du tableau mais de l'absence de création des séries. Ma réponse n'était qu'un exemple pour montrer ce que tu avais oublié.
    Faut lire !
    A+

    PS - La seule contrainte est que les données doivent se présenter sous la forme de tableaux de variants.

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

Discussions similaires

  1. [XL-2007] Comment régler le format de l'axe d'un graphique créé par une macro ?
    Par BastLat dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/08/2014, 10h07
  2. Problème pour une macro de traçage graphique
    Par DaniB dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/09/2009, 14h16
  3. [E-07] Générer un graphique avec une macro
    Par minirider dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/12/2008, 09h19
  4. Macro pour visualiser graphiquement pas à pas une lliste de valeurs
    Par Aidez-moi_svp dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/08/2007, 05h23
  5. Manipulation de graphiques par une macro
    Par C.R.E.A.M dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 03/08/2007, 16h10

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