Macro EXCEL pour créer séries graphiques

  • Auteur de la discussion coulraoul
  • Date de début

coulraoul

Nouveau membre
Bonjour à tous

Je suis débutant en macro excel, et je désirerai créer une macro afin d'ajouter des séries graphiques rapidement, puisque je dois créer plusieurs centaines de graphiques.

Les données que je souhaite sélectionner sont en colonne :

[cpp] 9/03/1997 18/12/1996
Profondeur (m) Conductivité Profondeur (m) Conductivité
74,5 1690 74,5 1645
75 1691 75 1627
76 1692 76 1658 [/cpp]
Je voudrai donc créer une "boucle for" qui me sélectionnerait pour chaque série graphique, la date en tant que nom de série, la profondeur en ordonnée et la conductivité en abscisse.

Voici ce que j'obtiens pour l'ajout d'une série avec l'enregistreur de macro:

[cpp]Sub GRAPH()

ActiveSheet.ChartObjects("Graphique 1").Activate
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).Name = "='Feuil1'!$D$1"
ActiveChart.SeriesCollection(2).XValues = "='Feuil1'!$E$2:$E$8"
ActiveChart.SeriesCollection(2).Values = "='Feuil1'!$D$2:$D$8"
End Sub[/cpp]

Je ne sais pas comment m'y prendre pour ajouter une boucle afin de décaler la sélection des données de deux colonnes à chaque fois.
Je ne connais pas du tout la syntaxe et je ne sais pas si c'est possible ni comment m'y prendre, j'espère que ma question est claire, et que vous pourrez m'aider.

Merci d'avance
 

zeb

Modérateur
Salut,

Pour faire une boucle dont on connaît les bornes, en VB, c'est For ... Next.
Avant d'aller plus loin, va lire d'aide sur cette commande.
 

coulraoul

Nouveau membre
Merci pour votre réponse.
un extrait des données sur lesquelles je travaille:

j'essaye d'utiliser cette commande mais je sais pas comment demander en language macro de décaler ma sélection de données de deux colonnes à chaque fois...
 

zeb

Modérateur
Je vais réécrire ta macro :
Code:
Sub GRAPH()

    Dim cellule_ref As Range
    Dim feuille     As Worksheet
    
    Set cellule_ref = Worksheets("Feuil1").Range("D1")
    Set feuille     = ActiveSheet
   
    feuille.ChartObjects("Graphique 1" ).Activate
    feuille.SeriesCollection.NewSeries
    feuille.SeriesCollection(2).Name    = "='Feuil1'!" & cellule_ref.Address
    feuille.SeriesCollection(2).XValues = "='Feuil1'!" & Range(cellule_ref.Offset(1, 1).Address, _
                                                               cellule_ref.Offset(1, 7).Address)
    feuille.SeriesCollection(2).Values  = "='Feuil1'!" & Range(cellule_ref.Offset(0, 1).Address, _
                                                               cellule_ref.Offset(0, 7).Address, _
    
End Sub

Vois-tu maintenant ce qui te reste à faire ?
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 128
Messages
6 717 843
Membres
1 586 372
Dernier membre
Meeithot
Partager cette page
Haut