Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 graphique avec plage variable sous condition en vba

mariebasile

XLDnaute Nouveau
Bonjour à tous j'essaye de représenter sur un graphiques des plages de données variables suivant certaines conditions. Apres plusieurs essais infructueux je me tourne vers vous voici mon code je n'ai pas de message d'erreur mais aucun résultat
VB:
Sub graphique()
Dim objChart As Chart, objRange1 As Range, objRange2 As Range, MaSerie As Series, compteur As Long
Dim i, j, k As Long
Dim ws, gr As Worksheet
    Set ws = Sheets("Zone de Contrôle")
    Set gr = Sheets("Graphiques")
    Set objRange1 = ws.Range(ws.Cells(7, 38), ws.Cells(59, 64))
    Set objRange2 = ws.Range(ws.Cells(7, 65), ws.Cells(59, 90))
    gr.ChartObjects("Chart 1").Activate
    ActiveChart.ChartType = xlLine
    Set MaSerie = ActiveChart.SeriesCollection.NewSeries
    
    
    i = ws.Cells(2, 37).Value
    
  For compteur = 2 To objRange1.Columns.Count
  For i = 1 To 3
    If ws.Cells(2, 38) = 1 And ws.Cells(4, 38) = 1 Then
    
        ActiveChart.SeriesCollection.Add objRange1, xlColumns, True, True
        MaSerie.Values = "=" & objRange1.Columns(compteur).Address(True, True, xlR1C1, True)
        MaSerie.XValues = "=" & objRange1.Columns(1).Address(True, True, xlR1C1, True)
        
            If ws.Cells(2, 38) = 1 And ws.Cells(4, 38) = 2 Then
                ActiveChart.SeriesCollection.Add objRange2, xlColumns, True, True
                MaSerie.Values = "=" & objRange2.Columns(compteur).Address(True, True, xlR1C1, True)
                MaSerie.XValues = "=" & objRange2.Columns(1).Address(True, True, xlR1C1, True)
                
                
                    End If
              End If
       Next i
    Next compteur
End Sub

je joint également un bout de mon fichier. j'ai vraiment besoin de vos éclairages merci infiniment
 

Pièces jointes

  • graph.xlsm
    229 KB · Affichages: 9

Efgé

XLDnaute Barbatruc
Bonjour

Je ne comprends pas bien ce que tu veux faire, mais en tous cas la ligne :
VB:
If ws.Cells(2, 38) = 1 And ws.Cells(4, 38) = 1 Then
Pose problème.
Tu la mets dans une boucle mais elle vérifie toujours les deux mêmes cellule ($AL$2 et $AL$4)

A voir.
Cordialement
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…