Graphique: Macro glissement de 7 lignes au niveau des séries
Résolu
Yrmouf
Messages postés
126
Date d'inscription
Statut
Membre
Dernière intervention
-
Yrmouf Messages postés 126 Date d'inscription Statut Membre Dernière intervention -
Yrmouf Messages postés 126 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Graphique: Macro glissement de 7 lignes au niveau des séries
- Changer carte graphique - Guide
- Graphique sparkline - Guide
- Graphique camembert excel - Guide
- Comment faire un graphique sur excel - Guide
- Planification de processeur graphique à accélération matérielle - Guide
3 réponses
J'ai essayé comme piste:
Sub Remplacer()
'
' Remplacer
'
Dim i
i = Range("AQ1").value+ 1 ActiveSheet.ChartObjects("Graphique 2").Activate
ActiveChart.SeriesCollection(1).XValues = "='N+PRINT'!$A$:$B$" &i
ActiveChart.SeriesCollection(1).Values = "='N+PRINT'!$C$:$C$"&i
ActiveChart.SeriesCollection(2).Values = "='N+PRINT'!$D$:$D$"&i
ActiveChart.SeriesCollection(3).Values = "='N+PRINT'!$E$:$E$"&i
ActiveChart.SeriesCollection(4).Values = "='N+PRINT'!$G$:$G$"&i
ActiveChart.SeriesCollection(5).Values = "='N+PRINT'!$H$:$H$"&i
ActiveChart.SeriesCollection(6).Values = "='N+PRINT'!$I$:$I$"&i
ActiveChart.SeriesCollection(7).Values = "='N+PRINT'!$J$:$J$"&i
ActiveChart.SeriesCollection(8).Values = "='N+PRINT'!$K$:$K$"&i
End Sub
Mais bon fonctionne seulement en rajout de lignes mais pas en décalage :(
Sub Remplacer()
'
' Remplacer
'
Dim i
i = Range("AQ1").value+ 1 ActiveSheet.ChartObjects("Graphique 2").Activate
ActiveChart.SeriesCollection(1).XValues = "='N+PRINT'!$A$:$B$" &i
ActiveChart.SeriesCollection(1).Values = "='N+PRINT'!$C$:$C$"&i
ActiveChart.SeriesCollection(2).Values = "='N+PRINT'!$D$:$D$"&i
ActiveChart.SeriesCollection(3).Values = "='N+PRINT'!$E$:$E$"&i
ActiveChart.SeriesCollection(4).Values = "='N+PRINT'!$G$:$G$"&i
ActiveChart.SeriesCollection(5).Values = "='N+PRINT'!$H$:$H$"&i
ActiveChart.SeriesCollection(6).Values = "='N+PRINT'!$I$:$I$"&i
ActiveChart.SeriesCollection(7).Values = "='N+PRINT'!$J$:$J$"&i
ActiveChart.SeriesCollection(8).Values = "='N+PRINT'!$K$:$K$"&i
End Sub
Mais bon fonctionne seulement en rajout de lignes mais pas en décalage :(
https://www.cjoint.com/?3HAsrX4vZ7N
bonne suite
Par ailleurs je cherche à comprendre le code:
Public Function Deca7(ByVal ss As String) As String
Dim t
t = Split(ss, "$") 'Séparation au niveau du $ mais que représente ss?
t(2) = Left(t(2), Len(t(2)) - 1) + 7 'Rajout de +7 aux lignes mais que le (2)?
t(4) = t(4) + 7 'Que représente le (4)?
Deca7 = t(0) & "$" & t(1) & "$" & t(2) & ":$" & t(3) & "$" & t(4) 'Compilation des nouvelles lignes
End Function
Private Sub btDec7_Click()
Dim ser As String, nuser As Long, nbser As Long, ts
With ActiveSheet.ChartObjects(1).Chart
nbser = .SeriesCollection.Count 'nb séries, compte le nombre de séries pour pouvoir faire décaler autant de séries qu'il y en a dans le graphique
For nuser = 1 To nbser 'nuser représente toutes les séries qui existent
ser = .SeriesCollection(nuser).FormulaLocal 'Récupération de la formule de =serie
ts = Split(ser, ";") 'séparation au niveau de la sélection des cellules pour obtenir les lignes
ts(1) = Deca7(ts(1)) 'utilisation de la macro plus haut pour décaler de 7 la première partie de séparation
ts(2) = Deca7(ts(2)) 'utilisation de la macro plus haut pour décaler de 7 la deuxième partie de séparation
ser = ts(0) & ";" & ts(1) & ";" & ts(2) & ";" & ts(3) 'compilation
.SeriesCollection(nuser).FormulaLocal = ser
Next nuser
End With
End Sub
Est-ce que cela est juste? Pourriez-vous apporter plus de précisions s'il vous plaît? Si vous voulez bien bien sûr.
Cordialement
Un exemple est toujours plus clair :)
https://www.cjoint.com/c/CHBpeQSAbvv
bonne journée