Bonjour,
Lors de l'exécution de ma macro sur Xls 2010, j'ai de temps en temps le message suivant:
[XL-2010] Run-time error '481': Invalid picture

J'ai dans un fichier excel un sheet "To Read" avec un bouton "Trésorerie" (CommandButton23) qui est censé m'ouvrir un user form contenant 2 graphiques.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
Private Sub CommandButton23_Click()
ChartNum = "Chart 1"
ChartNum2 = "Chart 2"
UserForm1.Show
End Sub
Apres avoir cliqué sur ce bouton 23, j'ai le message Run-time error '481': Invalid picture

En mode debug on s'apercoit que c'est la ligne de show the chart qui me génère cette erreur de temps en temps

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
 
Public LeGraph As Chart
Public LeGraph2 As Chart
Dim SuiviDerLig As Range  'cellule active de la feuille Match
Dim SuiviDerLigRow As Double 'Row dela Cellule activede la feuille Match
Dim Mise As Currency
Dim Gain As Currency
Dim MiseDate As Date
Dim MatchNb As Long
Dim Combi As String
Dim RT As String
Dim SuiviType As String
Dim ParGp As String
Dim ParName As String
Dim Invest As Currency
 
Option Explicit
Dim ChartNum As String
Dim ChartNum2 As String
 
Private Sub UserForm_Initialize()
ChartNum = "Chart 1"
ChartNum2 = "Chart 2"
 
    Me.MonthView1.Value = Date
 
    If IsDate(ActiveCell.Value) Then
      Me.MonthView1.Value = ActiveCell.Value
    End If
 
 
 With ComboBox2
        .AddItem "Damien B."
        .AddItem "Dje B."
        .AddItem "Florent S."
        .AddItem "Maman"
        .AddItem "Manu V."
        .AddItem "Micka H."
        .AddItem "Nico D."
        .AddItem "Olivier B."
        .AddItem "Papa"
        .AddItem "Tche L."
        .AddItem "Thierry B."
        .AddItem "Toto M."
    End With
    'Permet de surligner une valuer par defaut à louvetrtuer su user form
    ComboBox2.ListIndex = 1
    ParName = "Dje B."
 
 
 
'list box Combi
    With ComboBox1
        .AddItem "C&M"
        .AddItem "0T 6D"
        .AddItem "0T 7D"
        .AddItem "1T 4D"
        .AddItem "1T 5D"
        .AddItem "2T 3D"
        .AddItem "2T 4D"
        .AddItem "2T 5D"
        .AddItem "2T 6D"
        .AddItem "3T 2D"
        .AddItem "3T 3D"
        .AddItem "3T 4D"
        .AddItem "3T 4D"
        .AddItem "3T 7D"
        .AddItem "3T 8D"
        .AddItem "3T 9D"
        .AddItem "4T 1D"
        .AddItem "4T 2D"
        .AddItem "4T 3D"
        .AddItem "4T 6D"
        .AddItem "4T 7D"
        .AddItem "4T 8D"
        .AddItem "5T 5D"
        .AddItem "5T 6D"
        .AddItem "5T 7D"
        .AddItem "6T 4D"
        .AddItem "6T 5D"
        .AddItem "6T 6D"
        .AddItem "6T 7D"
        .AddItem "7T 3D"
        .AddItem "7T 4D"
        .AddItem "7T 5D"
    End With
    'Permet de surligner une valuer par defaut à louvetrtuer su user form
    ComboBox1.ListIndex = 16
    ComboBox1.Value = "4T 3D"
 
 
    'list box Parieur Investissement
    With ListBox5
        .AddItem "Dje"
        .AddItem "Famille"
        .AddItem "TJM"
        .AddItem "G4"
        .AddItem "Autres"
    End With
    'Permet de surligner une valuer par defaut à louvetrtuer su user form
    ListBox5.ListIndex = 0
    ParGp = "Dje"
 
    'list box Parieur
    With ListBox4
        .AddItem "Dje"
        .AddItem "Famille"
        .AddItem "TJM"
        .AddItem "G4"
        .AddItem "Autres"
    End With
    'Permet de surligner une valuer par defaut à louvetrtuer su user form
    ListBox4.ListIndex = 0
    ListBox4.Value = "Dje"
 
    'list box Reel & Test
    With ListBox3
        .AddItem "Reel"
        .AddItem "Test"
    End With
    ListBox3.ListIndex = 0
    RT = "Reel"
 
    'list box Type L1 ou Coupe europe..
    With ListBox1
        .AddItem "L2"
        .AddItem "L1"
        .AddItem "CdF"
        .AddItem "CL"
        .AddItem "C&M"
        .AddItem "Autres"
        .AddItem "Coupe Europe"
    End With
    ListBox1.ListIndex = 0
    SuiviType = "L2"
 
        'list box Nb de Match
    With ListBox2
        .AddItem "1"
        .AddItem "2"
        .AddItem "3"
        .AddItem "4"
        .AddItem "5"
        .AddItem "6"
        .AddItem "7"
        .AddItem "8"
        .AddItem "9"
        .AddItem "10"
        .AddItem "11"
        .AddItem "12"
        .AddItem "13"
        .AddItem "14"
        .AddItem "15"
    End With
ListBox2.ListIndex = 6
MatchNb = 7
 
 
Call Metgraph
 
 
 
lbl_Exit:
    Exit Sub
 
 
End Sub
 
Sub Metgraph()
Dim NomImage As String
Dim NomImage2 As String
'permet d'afficher le graphe de suivi de la caisse et bilan saison en cours à l'ouverture
Set LeGraph = Worksheets("suivi").ChartObjects(ChartNum).Chart
    LeGraph.Parent.Width = 400
    LeGraph.Parent.Height = 200
'Save chart as gif
NomImage = ThisWorkbook.Path & Application.PathSeparator & "temp.gif"
LeGraph.Export Filename:=NomImage, FilterName:="GIF"
 
Set LeGraph2 = Worksheets("suivi").ChartObjects(ChartNum2).Chart
'Save chart as gif
NomImage2 = ThisWorkbook.Path & Application.PathSeparator & "temp2.gif"
LeGraph2.Export Filename:=NomImage2, FilterName:="GIF"
 
'19-Sept-2015: resolution de l image tresorerie
'LeGraph.Export Filename:=NomImage, FilterName:="GIF"
'LeGraph2.Export Filename:=NomImage2, FilterName:="GIF"
 
'LeGraph.Export Filename:=NomImage, FilterName:="JPG"
'LeGraph2.Export Filename:=NomImage2, FilterName:="JPG"
 
'Show the chart
Image1.Picture = LoadPicture(NomImage)
'Show the chart
Image2.Picture = LoadPicture(NomImage2)
 
End Sub
J'ai trouvé une personne qui rencontra le meme probleme en passant la macro de XL-2007 a XL-2010 mais il n'est pas résolu :-(

Merci d'avance pour votre retour
Jerome