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 -
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!!!
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:
- Incrémenter un compteur excel
- Compteur électrique - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Trier un tableau excel - Guide
- Comment ralentir un compteur linky forum - Accueil - Objets connectés
5 réponses
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)
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)
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
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
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?
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?
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
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
Merci Michel, c'est clair.
Question : a quoi correspond le nombre 5 de la "seriescollection". Doit il s'incrémenter aussi?
Merci
Question : a quoi correspond le nombre 5 de la "seriescollection". Doit il s'incrémenter aussi?
Merci
, 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)
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question