cs_steph3147
Messages postés6Date d'inscriptionlundi 5 mai 2008StatutMembreDernière intervention15 mai 2008
-
14 mai 2008 à 13:46
cs_Le Pivert
Messages postés7904Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention14 août 2024
-
15 févr. 2009 à 19:07
Bonjour,
J'essaie de faire quelques opérations dans power point à partir de données collectées dans excel.
Cependant lorsque j'exécute la macro depuis excel ca plante des la première ligne (engras).
Quelqu'un peut-il me donner quelques conseils
Merci par avance
Dim ppt As PowerPoint.Application Set ppt = CreateObject("PowerPoint.Application")
ppt.Visible = True ' Indispensable, sinon il ne peut pas ouvrir de fichier (Erreur)
' On crée maintenant un objet Presentation
Dim Pres As PowerPoint.Presentation
' Et on lui dit de quelle présentation il s'agit :
Set Pres = ppt.Presentations.Open(Filename:="C:\Documents and Settings\acosta_s\Desktop\CLAC\LSD\test.ppt")
' On déclare une variable de type Application PowerPoint
' On active, sélectionne et copie le Graphique Graphique 1 de Excel :
ActiveSheet.ChartObjects("Graphique 1").Activate
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy
' Et on le colle dans la première diapositive de la présentation :
Pres.Slides(1).Shapes.Paste
' On enregistre la présentation PowerPoint :
Pres.Save
' Et on quitte PowerPoint proprement :
ppt.Quit
Set ppt = Nothing
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 14 mai 2008 à 16:47
ssalut,
il faut cocher dans les références de VBA (menu Outils) Microsoft PowerPoint Object Library
puis modifie 2 choses dans ton code :
Dim ppt As New PowerPoint.Application ' Ajoute New
'
PLus besoin de la ligne suivante, grâce a NEW (pour ton ppt), une souvelle
instance _
se crée
automatiquement
'Set ppt =
CreateObject("PowerPoint.Application")
ppt.Visible = True ' Indispensable, sinon il ne peut pas ouvrir de fichier
(Erreur)
' On crée maintenant un objet
Presentation
Dim Pres As PowerPoint.Presentation
' Et on lui
dit de quelle présentation il s'agit :
Set Pres = ppt.Presentations.Open(Filename:="C:\Documents and
Settings\acosta_s\Desktop\CLAC\LSD\test.ppt")
' On déclare une variable de type
Application PowerPoint
' On active,
sélectionne et copie le Graphique Graphique 1 de Excel :
ActiveSheet.ChartObjects("Graphique
1").Activate
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy
' Et on
le colle dans la première diapositive de la présentation :
Pres.Slides(1).Shapes.Paste
' On enregistre la
présentation PowerPoint :
Pres.Save
' Et on quitte PowerPoint
proprement :
ppt.Quit
Set ppt = Nothing
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 15 mai 2008 à 11:39
Si la réponse de Mortalino a solutionné ton problème, pense à cliquer le bouton vert "Réponse acceptée" sur son message. Ça aide les gens à trouver des solutions plus rapidement et ça évite à d'autres de s'y arrêter pour répondre...
Bonne journée !
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 14 févr. 2009 à 12:23
Salut LePivert,
Peut-être pourrais-tu essayer sans créer de référence ?
Avec une référence, on doit
déclarer une variable As New PowerPoint.Application
Sans référence, on doit
déclarer une variable As Object
et utiliser CreateObject("PowerPoint.Application")
Un des problèmes avec le code de steph3147 était qu'il mélangeait les 2 techniques. Il n'avait pas de référence et déclarait une variable As Powerpoint.Application et il utilisait CreateObject() tout de même...
Dans ton cas, je ne sais pas si ça pourrait régler le problème (?) Peut-être que ton ami n'a pas PowerPoint installé sur sa machine ?
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
cs_Le Pivert
Messages postés7904Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention14 août 2024137 14 févr. 2009 à 13:56
Le Pivert
Merci MPi, mais cela doit provenir du PC de mon ami car j'ai eu un commentaire sur mon programme qui m'indiquait qu'il fonctionnait très bien sur Excel 2007
@+ Le Pivert
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 14 févr. 2009 à 14:05
Le problème avec les références, c'est qu'elles ne sont pas compatibles d'une version à une autre. Si tu crées ton programme sous 2000, tu devras recréer la référence sous 2003 ou autres. Mais ça, je pense que tu le savais déjà...
Peut-être que le niveau de sécurité d'Excel chez ton ami est trop élevé. Demande-lui de voir dans Outils / Macros / Sécurité
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
cs_Le Pivert
Messages postés7904Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention14 août 2024137 15 févr. 2009 à 19:07
Merci MPi,
le problème est résolu cela venait du package Office qu'il a réinstallé. Il ne reconnaissait pas la bibliothèque. Avant je lui avais envoyé d'autres programmes qui ne nécessitaient pas de bibliothèque et ils fonctionnaient très bien.
@+
Le Pivert