Bonjour,
J'ai un bout de code qui va sélectionner une zone pour l'afficher dans une photo excel en fonction de critères.
Ensuite l'image est sauvegardée en local puis rechargée dans une picture de userform.(Merci Jacques Boisgontier, pour son encyclopédie, simple et accessible à tous !).
Le problème c'est que quand j'excécute pas à pas la macro, je récupère bien l'image mise à jour, mais si j'exécute la macro, alors je récupère l'image précédemment sauvegardée dans le classeur.
Pensant à un problème lié à l'excution du chargement de la shape, j'ai ajoutéde 10" ça fonctionne, mais je préfèrerais la gestion d'un "etat" plutot que de patienter 10 secondes pour rien !Application.Wait (Now + TimeValue("0:00:10"))
---- (ajout: Ca a fonctionné une ou deux fois, mais pas toujours).
J'ai jamais utilisé le doevents et les avis sont partagés sur cette fonction.
que me conseileriez vous.
Merci
Extraits de mon 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 Private Sub UserForm_Initialize() 'Lecture fichier instruction Workbooks.Open Filename:=Mon_Rep & Input_File, ReadOnly:=True Sheets(Feuille_Tra).Activate .... ActiveSheet.Shapes.Range(Array("Instruction")).Select Selection.Formula = "='" & Feuil_Cible & "'!A2:O48" Application.Wait (Now + TimeValue("0:00:10")) Set f = Workbooks("Instructions_162.xlsm").Sheets("LISTE_INSTRUC_ET_EXTRUSION") Set s = f.Shapes(CStr("Instruction")) s.CopyPicture f.ChartObjects.Add(0, 0, s.Width, s.Height).Chart.Paste f.ChartObjects(1).Chart.Export Filename:="monimage.jpg" f.Shapes(f.Shapes.Count).Delete Me.Image1.PictureSizeMode = fmPictureSizeModeZoom Me.Image1.Picture = LoadPicture("monimage.jpg") Kill "monimage.jpg" Workbooks("Instructions_162.xlsm").Saved = True Workbooks("Instructions_162.xlsm").Close End Sub
Partager