Bonsoir,

Je rencontre un problème avec le code ci-dessous, j'ai l'impression que je demande trop de ressources à Excel et qu'il n'a pas le temps de s’exécuter proprement :

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
 
Option Explicit
 
Private Sub UserForm_Initialize()
    Dim nb As Byte
    Dim Sh As Shape
    Dim Fichier As String
 
    Fichier = Workbooks(ActiveWorkbook.Name).Path & "\Temp.gif"
 
    If Dir(Fichier) <> "" Then Kill Fichier 'Supprime l'image temportaire si elle existe
 
    Set Sh = Worksheets("Feuil3").Shapes(1) 'Définit le 1er shape de la feuille comme image à afficher dans l'UserForm
 
 
    Sh.CopyPicture 'copie le shape dans la feuille
    'crée un graphique
    With Worksheets("Feuil3").ChartObjects.Add(0, 0, Sh.Width, Sh.Height).Chart
        .Paste 'colle l'image dans graphique
        .export Fichier, "GIF" ' enregistre le graphique au format gif
    End With
 
    Image1.AutoSize = True
 
    Image1.Picture = LoadPicture(Fichier)
 
    Me.Width = Sh.Width
    Me.ScrollHeight = Sh.Height
End Sub
Lorsque j’exécute au pas à pas (et pas trop vite), mon image s'exporte correctement -> son poids = 109ko
Mais lorsque je souhaites exécuter normalement le lancement de ma fenêtre, l'image ne s'exporte pas correctement (elle est toute blanche et ne pèse que 3ko)

Je ne vois pas du tout comment palier ce problème... Any ideas?