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.
J'ai testé :
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
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") Me.Repaint ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:="C:\PDF\essai.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Mais ce n'apporte rien.
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
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.
Partager