Courbe avec cellules actives (excel)

Résolu
yannBP Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
yannBP Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai fabriqué une macro, qui me trace la courbe de pionts sellectionnés dans une feuille, en mode enregistrement. Voici le résultat :
Range("B1:C1").Select
Range(Selection, Selection.End(xlDown)).Select
Charts.Add
ActiveChart.ChartType = xlXYScatter
ActiveChart.SetSourceData Source:=Sheets("I=f(U)").Range("B1:C734")
ActiveChart.Location Where:=xlLocationAsObject, Name:="I=f(U)"

Maintenant, le nombre de point n'étant pas toujours 734, je voudrais remplacer ce programme par :
Range("B1:C1").Select
Range(Selection, Selection.End(xlDown)).Select
Charts.Add
ActiveChart.ChartType = xlXYScatter
ActiveChart.SetSourceData Source:=Sheets("I=f(U)").ActiveRange
ActiveChart.Location Where:=xlLocationAsObject, Name:="I=f(U)"

Mais cela ne fonctionne pas.

Quelqu'un pourait-il me dire pourquoi, et comment faire pour que cela fonctionne ?
merci.
A voir également:

4 réponses

Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   309
 
Bonjour,
tu peux contourner le problème en créant une variable Range (ici nommée Zone) qui correspond à ta plage de données.

Range("B1:C1").Select
Range(Selection, Selection.End(xlDown)).Select
Dim Zone As Range: Set Zone = Selection
Charts.Add
ActiveChart.ChartType = xlXYScatter
ActiveChart.SetSourceData Source:=Zone
ActiveChart.Location Where:=xlLocationAsObject, Name:="I=f(U)"

I.
0
yannBP Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Merci Ivan-hoe,
cela fonctionne parfaitement.
Je me demande quand même pourquoi il accepte la fonction "zone" et pas la fonction activeRange
quelqu'un saurait-il me le dire ?
0
Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   309
 
Salut,
Ici, "Zone" n'est pas une fonction, mais une variable de type Range que tu as définie avec Dim Zone as Range. On lui affecte la valeur voulue avec Set Zone = Selection et on la réutilise un peu plus loin.
Quant à Activerange, je ne suis pas sûr que ça existe.
I.
0
yannBP Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Il me semblait avoir déjà vu cette fonction.
Bref
Merci encore.
0