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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 :


Nom : 1.PNG
Affichages : 260
Taille : 29,8 Ko

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 :


Nom : 2.PNG
Affichages : 213
Taille : 17,0 Ko



Vous sauriez pourquoi?

De plus, la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
.Axes(xlCategory).MajorUnit = 7
ne marche pas même si les données sont par semaine!


Merci d'avance!