Bonjour,

N'étant pas experte en VBA, je me suis inspirée de codes existants trouvés dans des forums pour écrire le code suivant.

Description du fichier :

L'utilisateur entre des données dans un userform. Celui-ci envoi les données dans un onglet "Données 2". A partir de cette base de donnée, 4 tableaux croisés dynamiques sont générés. Sur ces 4 tableaux, trois sont transformés en graphiques. Ces graphiques doivent ensuite apparaître dans le userform. Pour celà, un emplacement est réservé pour chacun d'autre eux : Image1 à Image3.


Démarche :

Après avoir cherché sur Internet, j'ai trouvé le code ci-dessous que j'ai un peu modifié. Celui-ci a très bien fonctionné quelques temps et maintenant il me donne le code erreur 481 "Image incorrect". Pourquoi???

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
Option Explicit
 
Const Fichier As String = "C:\ImageTemp.gif"
_________________________________________________________________
 
Private Sub UserForm_Initialize()
 
'Gestion des images de graphiques
Dim graph As Integer
For graph = 2 To 4
 
    'Supprime l'image temporaire si elle existe
    If Dir(Fichier) <> "" Then Kill Fichier
 
    'Définit le graphique dans l'onglet "RowSource" et exporte le graphique au format image
    With Worksheets("RowSource").ChartObjects(graph)
        .Height = 138 'assure la bonne hauteur
        .Width = 210 'assure la bonne largeur
        .Chart.Export Filename:=Fichier, filtername:="GIF" 'exporte le graphique
    End With
 
    'Affiche l'image dans le UserForm
    If graph = 2 Then
    Me.Image1.Picture = LoadPicture(Fichier)
    ElseIf graph = 3 Then
    Me.Image2.Picture = LoadPicture(Fichier)
    ElseIf graph = 4 Then
    Me.Image3.Picture = LoadPicture(Fichier)
    End If
 
    Next graph
 
End Sub