Courbe avec cellules actives (excel)

Résolu
yannBP Messages postés 10 Statut Membre -  
yannBP Messages postés 10 Statut Membre -
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.
Configuration: Windows XP
Internet Explorer 7.0

4 réponses

  1. Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   310
     
    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
  2. yannBP Messages postés 10 Statut Membre
     
    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
  3. Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   310
     
    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
  4. yannBP Messages postés 10 Statut Membre
     
    Il me semblait avoir déjà vu cette fonction.
    Bref
    Merci encore.
    0