2 pièce(s) jointe(s)
Problème lors de la création d'un graphe en VBA
Bonjour,
J'ai deux étapes dans mon code.
La première étape est de rajouter deux lignes de donnés(peu importe ce code!) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| Workbooks("Donnees-Positionnemnt.xlsm").Sheets("Données générales").Activate
m = Target.Row + 1
Rows(m).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Rows(m).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorDark2
.TintAndShade = -0.249977111117893
.PatternTintAndShade = 0
End With
Rows(m + 1).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent3
.TintAndShade = 0.399975585192419
.PatternTintAndShade = 0
End With
For i = 3 To Sheets.Count
For j = 2 To Sheets(i).Range("B" & Rows.Count).End(xlUp).Row
If Sheets(i).Cells(j, 2) = Sheets("Données générales").Cells(Target.Row, 2).Value Then
c1 = Sheets("Données générales").Cells(m, Columns.Count).End(xlToLeft).Column + 1
If c1 = 2 Then c1 = 1
c2 = Sheets(i).Cells(1, Columns.Count).End(xlToLeft).Column - 1
For k = 3 To c2
Sheets("Données générales").Cells(m + 1, c1) = Sheets(i).Cells(j, k)
Sheets("Données générales").Cells(m, c1) = Sheets(i).Cells(1, k)
Workbooks("Donnees-Positionnemnt.xlsm").Sheets(i).Cells(1, k).Copy
Workbooks("Donnees-Positionnemnt.xlsm").Sheets("Données générales").Cells(m, c1).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
c1 = c1 + 1
Next
End If
Next
Next |
La deuxième étape est de créer un graphe lié à ces deux lignes :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| columnCount = Cells(m, Columns.Count).End(xlToLeft).Column
With Workbooks("Donnees-Positionnemnt.xlsm").Sheets("Données générales")
Set R = .Range(Cells(m, 1), Cells(m + 1, columnCount))
Set Ch = .Shapes.AddChart
With Ch.Chart
.SetSourceData Source:=R
.ChartType = xlLineMarkers
.Axes(xlValue).ReversePlotOrder = True
'.Axes(xlCategory).MajorUnit = 7
.HasTitle = True
.ChartTitle.Caption = """" & Workbooks("Donnees-Positionnemnt.xlsm").Sheets("Données générales").Cells(ActiveCell.Row - 1, 2) & """"
End With
Set Ch = Nothing
Set R = Nothing
End With |
Mais il donne comme graphe :
Pièce jointe 196672
J'ai alors essayé de rajouter les deux lignes manuellement puis exécuter que le code de la deuxième étape(créer le graphe), il marche :
Pièce jointe 196673
Vous sauriez pourquoi?
De plus, la ligne
Code:
.Axes(xlCategory).MajorUnit = 7
ne marche pas même si les données sont par semaine!
Merci d'avance!