optimisation d'une macro excel-powerpoint

  • Initiateur de la discussion Initiateur de la discussion Mika
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

Mika

Guest
bonjour a tous!
Grace a ce site j'ai reussi a creer une macro qui met à jour un fichier powerpoint à partir des données rentrées dans un fichier excel. Cette macro de mise a jour s'effectue lorsque l'on sauvegarde le fichier excel. Le fichier Powerpoint s'ouvre alors, se sauvegarde et se referme. On voit donc à l'ecran un fichier powerpoint pendant qq secondes. Serait-il possible de rendre cette opération invisible ?

Pour info, voici la macro en question :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'nécéssite d'activer la reference Microsoft Powerpoint 10.0 Object Library
'nécessite aussi la reference Microsoft ActiveX Data Objects 2.0 library
Dim PptApp As PowerPoint.Application
Dim PptDoc As PowerPoint.Presentation
Set PptApp = CreateObject('Powerpoint.Application')
PptApp.Visible = True '

Set PptDoc = PptApp.Presentations.Open('C:\\pres2.ppt') 'adapter le chemin

With PptDoc
If Range('J18') = 'ok' Then .Slides(3).Shapes('f01').Fill.ForeColor.RGB = RGB(0, 255, 0) Else .Slides(3).Shapes('f01').Fill.ForeColor.RGB = RGB(255, 0, 0)

.Save 'sauvegarder la presentation
End With
PptDoc.Close 'fermer la presentation sauvegardée
PptApp.Quit 'fermer powerpoint
End Sub
 
rebonsoir

effectivement , tu as raison . je n'avais jamais fait attention à ce point .

supprime la ligne

PptApp.Visible = True

et tu peux essayer

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'nécéssite d'activer la reference Microsoft Powerpoint 10.0 Object Library
'nécessite aussi la reference Microsoft ActiveX Data Objects 2.0 library
Dim PptApp As PowerPoint.Application
Dim PptDoc As PowerPoint.Presentation
Set PptApp = CreateObject('Powerpoint.Application')

Set PptDoc = PptApp.Presentations.Open('C:\\\\\\\\pres2.ppt', WithWindow:=msoFalse)

With PptDoc
If Range('J18') = 'ok' Then .Slides(3).Shapes('f01').Fill.ForeColor.RGB = RGB(0, 255, 0) Else .Slides(3).Shapes('f01').Fill.ForeColor.RGB = RGB(255, 0, 0)

.Save 'sauvegarder la presentation
End With
PptDoc.Close 'fermer la presentation sauvegardée
PptApp.Quit 'fermer powerpoint
End Sub


bonne soirée
MichelXld

Message édité par: michelxld, à: 21/03/2006 21:41
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
0
Affichages
1 K
Retour