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 :

Faire 130 graphiques identiques : boucle VBA


Sujet :

Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Faire 130 graphiques identiques : boucle VBA
    Bonjour,

    je souhaite réaliser 310 graphiques identique (des nuages de points)

    j'ai 310 entités qui n'évolueront pas (colonne A),
    j'ai 12 périodes représentées par 12 colonnes (B-M)

    1 ligne = 1 Entité
    pour chaque entité j'ai une valeur par période et je souhaite représenter un nuage de point plus courbe de tendance linéaire et équation de la droite
    en gros pour chaque ligne je veux un nouveau graphique (B2-M2 à B311-M311) avec pour nom de graphique l'entité dans le colonne A.
    j'ai tenté de faire une boucle mais mon code ne fonctionne pas :

    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
     
     
    For i = 1 To 310
     
        ActiveSheet.Shapes.AddChart.Select
        ActiveChart.ChartType = xlXYScatter
        ActiveChart.SeriesCollection.NewSeries
        ActiveChart.SeriesCollection(1).Name = "=Indice_Hfaune_flore!A & i"
        ActiveChart.SeriesCollection(1).XValues = "=Indice_Hfaune_flore!$B$1:$M$1"
        ActiveChart.SeriesCollection(1).Values = "=Indice_Hfaune_flore!B & i :M & i"
        ActiveChart.PlotArea.Select
        ActiveChart.SeriesCollection(1).Select
        ActiveChart.SeriesCollection(1).Trendlines.Add
        ActiveChart.SeriesCollection(1).Trendlines(1).Select
        Selection.DisplayEquation = True
        Selection.DisplayRSquared = True
        ActiveChart.SeriesCollection(1).Trendlines(1).DataLabel.Select
        Selection.Left = 266.902
        Selection.Top = 9.077
        ActiveChart.ChartArea.Select
        ActiveSheet.Shapes("Graphique 4").IncrementLeft 500.25
        ActiveSheet.Shapes("Graphique 4").IncrementTop -198
     
    Next i
     
    End Sub
    quelqu'un pourrait m'orienter ? merci

  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
    Je pense que ton problème est juste un mauvais positionnement des guillemets et un & oublié.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        ActiveChart.SeriesCollection(1).Name = "=Indice_Hfaune_flore!A" & i
        ActiveChart.SeriesCollection(1).XValues = "=Indice_Hfaune_flore!$B$1:$M$1"
        ActiveChart.SeriesCollection(1).Values = "=Indice_Hfaune_flore!B" & i & ":M" & i
    Petit détail : à ta place, j'utiliserais une variable objet plutôt que ActiveChart.
    Les ActiveSheet sont inutiles.

    Autre remarque : pour les lignes Left et Top, tu devrait calculer des valeurs en fonction de i. Sinon, tous tes graphiques seront au même endroit et se recouvriront les uns les autres.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Ok merci,

    j'ai bien corrigé ces petits problèmes mais cela ne fonctionne toujours pas, il ne trouve pas les valeurs à prendre ne compte,
    je pense que le problème vient du début de mon code et qu'il manque certainement un ligne ou deux avant ou après le

    merci

  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
    Citation Envoyé par boben Voir le message
    cela ne fonctionne toujours pas, il ne trouve pas les valeurs à prendre ne compte,
    Tu pourrais être plus précis sur les symptômes de ton problème ?

    je pense que le problème vient du début de mon code et qu'il manque certainement un ligne ou deux avant ou après le
    A priori non.
    Certes, il serait mieux de déclarer ta variable avec un
    Mais ce n'est pas ça qui empêchera l'usage de ton code.
    Ca pourrait le bloquer si tu l'avait précédé de l'option Explicit mais, dans ce cas, ça te bloquerai d'entrée avec un message "Variable non définie". A priori, ce n'est pas le cas.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Alors,

    cela me dit erreur 438

    à la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Selection.DisplayEquation = True
    j'ai un graph qui apparait avec en abscisse 0 0.2-0.4-...1 au lieu de 1 à 12
    et en ordonnée 0.1...1 au lieu de mes valeurs qui oscillent entre 0 et 6
    le titre donne #ref
    et il n'y a aucun point sur le graph

    comment je peux insérer une partie de mes données ici ?

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    graph.xlsx

    voilà mes données

Discussions similaires

  1. [XL-2003] faire une boucle dans une boucle VBA
    Par the-geut dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/04/2010, 15h06
  2. faire un graphique
    Par vplf dans le forum Access
    Réponses: 9
    Dernier message: 07/05/2008, 09h15
  3. VBA - Excel Faire un graphique histogrammes - courbes
    Par brethomeau dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 16/11/2005, 16h49
  4. faire des graphiques avec Perl
    Par And_the_problem_is dans le forum Modules
    Réponses: 2
    Dernier message: 16/07/2003, 16h08
  5. [RAVE][DELPHI7] Comment faire un graphique ?
    Par DFANDOR dans le forum Rave
    Réponses: 7
    Dernier message: 06/02/2003, 20h25

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