Excel - incrémentation dans macro

Résolu
olive60 Messages postés 253 Date d'inscription   Statut Membre Dernière intervention   -  
olive60 Messages postés 253 Date d'inscription   Statut Membre Dernière intervention   -
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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   Statut Membre Dernière intervention   27
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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   Statut Membre Dernière intervention   27
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
, 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   Statut Membre Dernière intervention   27
 
Merci michel, cela devient limpide !

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

Merci
Olive
0