Ajouter la série Axe des X à un graphique sur zone filtrée
Bonjour à tous
J'en appelle à votre savoir pour résoudre un problème relativement simple je pense, mais mes connaissances insuffisantes à ce jour pour avancer sur mon projet :
Le code ci dessous génère automatiquement un graphique, de façon simple. Je suis parvenu à l'améliorer.
Je souhaiterais maintenant ajouter l'axe des X (Colonne I de ma base de donnée qui contient les dates), mais la ligne de code que j'ai trouvé sur le net me prend toute la colonne, et non les données issues du filtre.
J'ai commenté un maximum le code en espérant avoir été clair.
1 - Chargement d'une box d'un formulaire
Private Sub UserForm_Initialize()
' ============ Récupération de la clé de filtre dans un menu déroulant et mise en place du filtre ============
Dim i As Integer
Dim Plage As Range
Set WsListes = Sheets("Liste validation")
Set WsData = Sheets("ASQ.ER.483")
'Chargement de la box
With WsListes
Set Plage = .Range("C4:C" & .Range("C65536").End(xlUp).Row)
End With
CBAnalyse.List = Plage.Value
End Sub2 - Mise en place du filtre
Private Sub CommandButton1_Click()
'Mise en place du filtre
If FormPT.CBAnalyse.ListIndex = -1 Then
Exit Sub
Else
Analyse = CBAnalyse.Value
End If
WsData.Activate
NbLignes = Range("A65536").End(xlUp).Row
'colonne cible = J=10
WsData.Range("A1:V" & NbLignes).AutoFilter Field:=10, Criteria1:=Analyse
CreerGraphiqueNvelleFeuille
End Sub3 - Création et amélioration du graphique
Sub CreerGraphiqueNvelleFeuille()
Const sheDonnéesSource As String = "ASQ.ER.483"
Const sheGraphique As String = "Carte Z-Score"
Dim chGraph As Chart
Dim rPlage, xPlage As Range
Dim i As Integer
' Définition de la plage des données source du graphique
Set rPlage = Sheets(sheDonnéesSource).Range("H2:H" & NbLignes)
' Suppression du graphique si déjà existant
On Error Resume Next
Sheets(sheGraphique).Delete
On Error GoTo 0
' Création du graphique
Set chGraph = Charts.Add
With chGraph
' Type histogramme
.ChartType = xlColumnClustered
' Source du graphique
.SetSourceData Source:=rPlage, PlotBy:=xlColumns
'.SetSourceData Source:=xPlage, PlotBy:=xlRows
' Affichage du titre
.HasTitle = True
' Intitulé
.ChartTitle.Characters.Text = Analyse
' Nom de la feuille recevant le graphique
.Name = sheGraphique
' Ajout axe des X
'.SeriesCollection(1).XValues = "=ASQ.ER.483!I2:I" & NbLignes
.SeriesCollection(1).Format.Fill.ForeColor.RGB = rgbGreen
End With
'Modifications
With ActiveChart.Axes(xlValue)
.HasTitle = True
.MaximumScale = 3
.MinimumScale = -3
.MajorUnit = 0.5
.Border.Color = RGB(255, 0, 0)
With .AxisTitle
.Caption = "Z-SCORE"
.Font.Name = "bookman"
.Font.Size = 10
'.Interior.Color = RGB(0, 255, 0)
End With
End With
With ActiveChart.Axes(xlCategory)
.HasTitle = True
.AxisTitle.Text = "Envoi"
End With
'Axe des X en bas
ActiveChart.Axes(xlCategory).Select
Selection.TickLabelPosition = xlLow
End SubMon souhait est donc d'ajouter la colonne I en axe des X sur la zone filtrée.
Etape suivante également, ajouter d'autres séries de données (Colonnes U à X, au format 'courbe' et non barre), toujours sur le filtre de ma série.
Merci beaucoup pour votre aide.
Frederic