Probléme sélection de données pour graphique

  • Initiateur de la discussion Initiateur de la discussion Tatan
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Tatan

XLDnaute Nouveau
Bonjour,

J'ai réalisé une macro afin d'automatiser des taches pour mon boulot, afin d'améliorer la mise en forme je détermine la dernière ligne de mon tableau en utilisant
Code:
 Derlig = Range("A1").end(xldown).row

J'aimerai utiliser cette variable pour la sélection des données de mon graphique. Les données que j'ai ajouté au graphique se situe dans les colonnes "A" et "C" mais que j'utilise le code suivant pour déterminer les données source de mon graphique :
Code:
ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("A1:A" & Derlig, "C1:C" & Derlig)
J'obtiens un graphique avec 2 courbes , une avec les données A et B et une autre avec les données A et C.
Pouvez vous me dire comment faire pour sélectionner seulement les données en A et C.
Je vous remercie d'avance.

Jonathan

Je vous joint mon fichier en pièce jointe.
 

Pièces jointes

Re : Probléme sélection de données pour graphique

Bonsoir Tatan,

Pour choisir des plages non contigües, tu peux utiliser la fonction UNION pour joindre des plages.

Voici ton code modifié. J'en ai profité pour l'optimiser un peu...

VB:
Sub Graphique()
Dim Derlig
Dim ch As Shape
Dim plage As Range

'Derlig = Range("A1").End(xlDown).Row
Derlig = Range("A65000").End(xlUp).Row  'Cette méthode est préférable habituellement mais équivalente ici

'==========
' Graphique
'==========
    
    ' Définir la plage avec la fonction UNION
    Set plage = Union(Range("A1:A" & Derlig), Range("C1:C" & Derlig))
    
    Set ch = ActiveSheet.Shapes.AddChart
    ch.Name = "Graphique 1"
    
    With ch.Chart
        .ChartType = xlXYScatterLinesNoMarkers
        .SetSourceData Source:=plage
        .Location Where:=xlLocationAsObject, Name:="Feuil1"
        .Axes(xlCategory).HasMajorGridlines = True
        .Axes(xlValue).HasMajorGridlines = True
            With .Axes(xlCategory)
                .MinimumScale = 1000
                .MaximumScale = 2300
                .MinorUnitIsAuto = True
                .MajorUnit = 100
                .Crosses = xlAutomatic
                .ScaleType = xlLinear
            End With
    End With

End Sub

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
202
Réponses
6
Affichages
723
Réponses
7
Affichages
702
Retour