Définir une plage de cellules discontinues de manière correcte

SERIEUXETCOOL

XLDnaute Occasionnel
Bonsoir le forum,

Je me retourne vers vous pour une petite question...

Je cherche à définir de manière correcte une plage de données discontinue sous la forme suivante : Une cellule sur deux.

En fait je désire tracer un graphique à partir d'une macro. Ce graph sera définit sur deux colonnes (abscisse, ordonnée) mais seulement une cellule sur deux.

Voici les deux lignes de mon code que je cherche à modifier :

Code:
ActiveChart.SeriesCollection(1).XValues = Range("A1:A20") 'Valeurs en abscisse
    ActiveChart.SeriesCollection(1).Values = Range("B1:B20") 'Valeurs en ordonnée

Mais je désire remplacer "Range("A1:A20")" et "Range("B1:B20")" par une autre plage qui serait définie par une cellule sur deux (plage discontinue).

Voici le code que je propose mais qui ne fonctionne pas du tout car mal définit !

Code:
Dim Abscisse As Range, Ordonnée As Range
    Dim i As Long
    
    For i = 1 To 20 Step 2
    Abscisse = Union(Range("A" & i))
    Ordonnée = Union(Range("B" & i))
    Next
    
    ActiveChart.SeriesCollection(1).XValues = Abscisse 'Valeurs en abscisse
    ActiveChart.SeriesCollection(1).Values = Ordonnée 'Valeurs en ordonnée


Qui aurait la gentillesse de proposer une solution à mes soucis ?

Merci d'avance,

André
 

Softmama

XLDnaute Accro
Re : Définir une plage de cellules discontinues de manière correcte

Bonjour SERIEUXETCOOL,

à priori, tu peux changer ces lignes :
VB:
    For i = 1 To 20 Step 2
    Abscisse = Union(Range("A" & i))
    Ordonnée = Union(Range("B" & i))
    Next
en
VB:
Dim Abscisse as Range, Ordonnée as Range
  Set Abscisse = Range("A1")
  Set Ordonnée = Range("B1")
    For i = 3 To 20 Step 2
      Set Abscisse = Union(Abscisse, cells(i, 1))
      Set Ordonnée = Union(Ordonnée, cells(i, 2))
    Next
 

Discussions similaires

Réponses
0
Affichages
180