Excel - incrémentation dans macro

Résolu/Fermé
olive60 Messages postés 253 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 21 décembre 2010 - 21 déc. 2010 à 15:32
olive60 Messages postés 253 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 21 décembre 2010 - 21 déc. 2010 à 17:16
Bonjour à tous,

voici mon souci :

Je suis en train d'alimenter un graph à points avec des données.

Je souhaite le faire par macro car j'ai beaucoup de série.

les données sources sont des cellules ou se trouve une source "construite" (pour être dynamique, à la façon Indirect quoi...)

Voici ma macro. Elle fonctionne bien.

-----------

Sub Import_Séries()

Worksheets("Graph").ChartObjects("Chart 2").Activate

ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(5).Name = Worksheets("Références graph").Range("D10").Value
ActiveChart.SeriesCollection(5).XValues = Worksheets("Références graph").Range("D11").Value
ActiveChart.SeriesCollection(5).Values = Worksheets("Références graph").Range("D12").Value

ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(6).Name = Worksheets("Références graph").Range("D13").Value
ActiveChart.SeriesCollection(6).XValues = Worksheets("Références graph").Range("D14").Value
ActiveChart.SeriesCollection(6).Values = Worksheets("Références graph").Range("D15").Value

ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(7).Name = Worksheets("Références graph").Range("D16").Value
ActiveChart.SeriesCollection(7).XValues = Worksheets("Références graph").Range("D17").Value
ActiveChart.SeriesCollection(7).Values = Worksheets("Références graph").Range("D18").Value

ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(8).Name = Worksheets("Références graph").Range("D19").Value
ActiveChart.SeriesCollection(8).XValues = Worksheets("Références graph").Range("D20").Value
ActiveChart.SeriesCollection(8).Values = Worksheets("Références graph").Range("D21").Value

End Sub

-------

Je souhaiterai incrémenter les colonnes dans cette macro (les lignes ne doivent pas s'incrémenter par contre)

les colonnes ou se trouve les données sont donc : "D" (déjà réalisé dans la macro ci-dessus) et :

F
H
J
L
N
P
R

Voila cela eviterai de recopier la marco ci-dessus 7 fois de plus en changeant juste le numéro de nouvelle série et la référence de la colonne.


Si vous pouvez m'aider c'est cool (ou me mettre sur la piste) !!!!


MErci!!!
A voir également:

5 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 306
Modifié par michel_m le 21/12/2010 à 16:09
Bonjour

au lieu de
range("D10")
essaies
cells(10,cptr)
où cptr est ton compteur d'incrémentation (D=4.....Z=26..)
Michel
Vous programmez en VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...(P. Fauconnier/dvp)
1
ccm81 Messages postés 10887 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 21 septembre 2024 2 420
Modifié par ccm81 le 21/12/2010 à 16:08
bonjour
une solution : reférencer les cellule avec le style R1C1 (R pour ligne et C pour colonne)
ex Range("A3") devient Range("R3C1")
on peut faire Range("R "& lig & "C" & col) ou lig et col sont des varailes
et donc incrementer ...
une autre solution utiliser les code ASCII de la colonne 65 pou A 66 pour B etc ... et la fonction chr(code)
bonne suite
0
olive60 Messages postés 253 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 21 décembre 2010 27
21 déc. 2010 à 16:12
Merci pour vos réponses très claires.

Ok pour l'incrémentation des colonnes (je comprends le système, maintenant je vais essayer de le faire !)...

Mais pour le numéro de série ?

et comment arrêter le compteur?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 306
Modifié par michel_m le 21/12/2010 à 16:22
For cptr=4 to 11 'par exemple 11=K

ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(5).Name = Worksheets("Références graph").cells(10,cptr)
ActiveChart.SeriesCollection(5).XValues = Worksheets("Références graph").cells(11,cptr)
ActiveChart.SeriesCollection(5).Values = Worksheets("Références graph").cells(12,cptr)

.....

next
0
olive60 Messages postés 253 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 21 décembre 2010 27
21 déc. 2010 à 16:36
Merci Michel, c'est clair.

Question : a quoi correspond le nombre 5 de la "seriescollection". Doit il s'incrémenter aussi?

Merci
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 306
21 déc. 2010 à 16:59
, je sais pas trop : essaies 1 incrémentation et regarde le résultat réel graphique... Si c'est sur le m^me graphique comme tu semble le dire il faut incrémenter la série aussi...ce que ne comprend pas c'est pourquoi tu commences à la série 5
Si D correspond à la premiere série (1)

ActiveChart.SeriesCollection.NewSeries

ActiveChart.SeriesCollection(5).Name = Worksheets("Réfé/code>
serie

en relisant ton sujet 
écrire plutôt
<code>For cptr=4 to 18 step 2 
(puisque tu passes de D à F et de F à H)

donc

serie=1
For cptr=4 to 18 step 2

ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(serie).Name = Worksheets("Références graph").cells(10,cptr)
ActiveChart.SeriesCollection(serie).XValues = Worksh....
ActiveChart.SeriesCollection(serie).Values = Workshe....

serie=serie+1
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(serie).Name = Worksheets("Références graph").cells(13,cptr)
ActiveChart.SeriesCollection(serie).XValues = Worksheets("Ré....
ActiveChart.SeriesCollection(serie).Values = Workshe....

serie=serie+1

etc
next

enfin pour éviter des clignotement de l'écran (on n'est pas à Las Vegas) en début de macro
application.screenupdating=false
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
olive60 Messages postés 253 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 21 décembre 2010 27
21 déc. 2010 à 17:16
Merci michel, cela devient limpide !

... et j'aime bcp ta blagounette de fin !

Merci
Olive
0