VBA- Rafrachir les graphiques
d
Bonjour,
Dans un code précédent, j'utilise à toute fin pratique la même pour créer les graphiques ( dans un code, si la page est pas là créer la).
Alors, dans le but de rafraichir les graphiques si les données change j'ai fait un autre vba, il n'arrive pas au Worksheets des données .
le : X_axis et Y_axis bug affreusement.. Si quelqu'un sait d'où ce code sort ce serait intéressant;
:erreur d'exécution 1004, la méthode range de l'objet worksheet a échoué.
à noter: mes fichiers de données ont le même nom que ceux de leur vérification graphique(XXX) ; ceux que les graphiques ont: verif_XXX
Sub Rafraichissement_des_graphiques()
Dim wsChart As Worksheet, wsData As Worksheet
Dim objChart As ChartObject
Dim strTitle As String
Dim rCell As Range
Dim ifvalue As Long
Dim AChart As Chart
Dim X_axis As Range, Y_axis As Range
' fermer l'actualisation de la page
Application.ScreenUpdating = False
gdc_main = Sheets("Légende").Cells(8, 6).Value & ".xlsm"
For Each feuille In Workbooks(gdc_main).Worksheets
If Left(feuille.Name, 5) = "verif" Then
ch_verif = feuille.Name
s_donnee = Mid(ch_verif, 7, 50)
gdc_main = Sheets("Légende").Cells(8, 6).Value & ".xlsm"
ch_verif = feuille.Name
s_donnee = Mid(ch_verif, 7, 50)
Set wsData = Workbooks(gdc_main).Sheets(s_donnee)
Set wsChart = Workbooks(gdc_main).Sheets(ch_verif)
' xfin = wsData.Cells(Rows.Count, 2).End(xlUp).Row
'Sheets(ch_verif).Cells.Delete
For Each objChart In wsChart.ChartObjects
objChart.Delete
Next objChart
Set X_axis = wsData.Range("Q13", Range("Q65536").End(xlUp))
'Set X_axis = wsData.Range(Cells(13, 17), Cells(xfin, 17))
i = 0
For p = 1 To 4 'graphique place
For q = 1 To 3 ' graphique place
i = 1 + i
strTitle = "Thermocouple #" & i
Set rCell = wsChart.Cells(2, 2).Offset(22 * (q - 1), 8 * (p - 1))
Set objChart = wsChart.ChartObjects.Add(rCell.Left, rCell.Top, 400, 300)
objChart.Name = "Chart_" & i
With objChart.Chart
.HasTitle = True
.HasLegend = True
.ChartTitle.Text = strTitle
.Axes(xlValue).HasTitle = True
.Axes(xlValue).AxisTitle.Text = "Température (°C)"
.Axes(xlCategory).HasTitle = True
.Axes(xlCategory).AxisTitle.Text = "Temps (sec)"
Set Y_axis = wsData.Range("Q13", Range("Q65536").End(xlUp)).Offset(0, i)
' Set Y_axis = wsData.Range(Cells(13, 17).Offset(0, i), Cells(xfin, 17).Offset(0, i))
.SeriesCollection.NewSeries
.SeriesCollection(1).Name = wsData.Range("Q12").Offset(0, i)
.SeriesCollection(1).XValues = X_axis
.SeriesCollection(1).Values = Y_axis
.SeriesCollection(1).ChartType = xlLineMarkers
strTitle = ""
End With
Next q
Next p
End If
Next feuille
'ouvrir l'Actualisation de la page
Application.ScreenUpdating = True
End SubBonjour,
Merci de joindre un fichier à ta demande.
Cdlt.