Bonjour,

J'utilise un contrôle d'image sur une feuille Excel pour afficher des vignettes et ensuite générer un PDF de la feuille.

Le code fonctionne, mais bien que la vignette soit la bonne sur la feuille excel, celle de la version PDF ne se mets pas à jour et reste celle affichée précédemment, comme si le contrôle d'image n'avait pas le temps de se rafraîchir avant l'édition du PDF.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
Me.Image1.Picture = LoadPicture("C:\essai.jpg")
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:="C:\PDF\essai.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
J'ai testé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
Me.Image1.Picture = LoadPicture("C:\essai.jpg")
Me.Repaint
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:="C:\PDF\essai.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Mais j'obtiens un refus lorsque je compile

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
Me.Image1.Picture = LoadPicture("C:\essai.jpg")
DoEvents 
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:="C:\PDF\essai.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Mais ce n'apporte rien.

Une solution consiste à ajouter une tempo d'une seconde entre les deux lignes, mais ça ne me semble pas très propre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
Me.Image1.Picture = LoadPicture("C:\essai.jpg")
Application.Wait(Now + TimeValue("0:00:01"))
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:="C:\PDF\essai.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

Merci d'avance pour votre aide.