Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/10/2011, 17h34   #1
Membre Expert
 
Avatar de Daranc
 
Inscription : janvier 2007
Messages : 1 166
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 1 166
Points : 1 244
Points : 1 244
Par défaut Plage nommée dans un graphique par VBA

Bonjour
j'ai un graphique dont le nombre de séries varie de 105 à 202 (environ)
je nomme les plages définissant les séries par VBA
Code :
1
2
3
4
5
6
7
8
9
10
With ActiveSheet
fin = .Range("l9").Value
taquet = .Range("l11").Value
For t = 23 To t + fin
p = t - 22
Nom(p) = .Range("k" & t).Value
With ThisWorkbook
ActiveWorkbook.Names.Add Name:=Nom(p), RefersToR1C1:="=Feuil1!R1C1:R" & t & "C" & taquet
End With
Next
les plages nommées sont bien à leur place, et sélectionnent bien les cellule demandées
par contre ça coince c'est lorsque je veux utiliser ces plages pour les séries du graphique j'emploie ceci
Code :
1
2
3
4
5
6
7
8
9
For p = 1 To fin
Nom(p) = "=" & ActiveWorkbook.Name & "!" & Nom(p)
Next
For p = 1 To fin
Sheets(2).Select
ActiveSheet.ChartObjects("Chart 1033").Select
With ActiveChart
  ActiveChart.SeriesCollection(p).Values = Nom(p)
End With
Merci
bon je me réponds
j'ai trouvé l'erreur
l'emploi de plage nommées marche très bien sur le graphique au niveau de la feuille
Pour l'entrée par VBA par contre je dois employer des formes du style $A$1:$F$1
la macro se modifie comme suit:
Code :
1
2
3
4
5
6
7
8
9
With Sheets(2)
fin = .Range("l9").Value
taquet = .Range("l11").Value
.Range("l7").Value = .Range("l10").Value
For t = 1 To fin
p = t + 22
Nom(t) = .Range("k" & p).Value
Set mc = .Range(.Cells(p, 12), .Cells(p, taquet))
ZonA(t) = mc.AddressLocal()
pour la création du tableau de série
et
Code :
1
2
3
4
5
6
7
8
9
10
Sheets(2).Select
ActiveSheet.ChartObjects("Chart 1033").Activate
ActiveChart.ChartArea.Select
For p = 1 To fin
With ActiveChart
.SeriesCollection(p).Values = Sheets(2).Range(ZonA(p))
.SeriesCollection(p).Name = Nom(p)
End With
Next p
End With
ceci pour entrer les séries.
__________________
Cordialement
Daranc
Daranc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h03.


 
 
 
 
Partenaires

Hébergement Web