Activer une référence VB grace à une macro Excel

Résolu
killy99 Messages postés 25 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 novembre 2008 - 3 sept. 2008 à 11:28
killy99 Messages postés 25 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 novembre 2008 - 3 sept. 2008 à 14:57
Bonjour à tous,

Je travaille sur une macro Excel pilotant Powerpoint. Pour ce faire il faut que j'active la référence "Microsoft Powerpoint XX.X Object Library" dans Visual Basic.

J'ai un petit problème: Pour le moment je ne sais qu'activer la référence à la main ce qui ne me conviend pas car je ne veux pas que les utilisateurs facent cette manipulation. La question est donc de savoir comment automatiser cette activation.

Merci d'avance pour vos réponses.

6 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
3 sept. 2008 à 14:46
Bonjour,

Une fois ton developpement terminé, tu peux modifier ton code :

Dim ppt As PowerPoint.Application
Set ppt = CreateObject("PowerPoint.Application")

En

Dim ppt As Object
Set ppt = CreateObject("PowerPoint.Application")

Et là plus besoin de la référence je pense.
La référence se décoche si tu copie le code, pas si tu copie le fichier normalement.

3
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
3 sept. 2008 à 13:20
Bonjour,

Activer la référence ? Qu'entends-tu par là ?  Ajouter la référence ?

0
killy99 Messages postés 25 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 novembre 2008
3 sept. 2008 à 13:33
Bonjour Henry,

Sous visual basic(alt+F11 sous excel) dans le menu "Outils" - "Références..." j'active la référence désiré pour un classeur donné. Donc oui nous pouvons dire que je l'ajoute :) .
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
3 sept. 2008 à 14:25
Bonjour,

Ce que je peux te conseiller (sachant que je ne sais pas comment faire pour ajouter la référence automatiquement), ce serait d'utiliser "CreateObject" afin de pointer vers PPT.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
killy99 Messages postés 25 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 novembre 2008
3 sept. 2008 à 14:34
Re,

J'arrive à gérer Power point via une macro Excel, pour que la macro d'excel gère Powerpoint il falait que j'active la référence "Microsoft Powerpoint XX.X Object Library", ce que j'ai fait manuellement.

Ce que je désire c'est que quant je fournirai la macro aux utilisateurs ils n'aient pas à activer manuellement la référence, donc l'automatiser dans la macro.

Je cherche donc un snipset du style "PowerPoint.Application.Ref.Maref.activate".

Merci d'avance.

Voici le code provisoire de l'appli(qui n'est pas utile de connaitre pour mon problème):
Public Sub test()

Dim nbslide As Integer

 ' On déclare une variable de type Application PowerPoint

  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:="d:\Documents and Settings\dc42964\Bureau\Dév Macro\MacroPERSO\RSM\MaPresentation.ppt")

  ' 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 :

  nbslide = Pres.Slides.Count

  Pres.Slides.Add nbslide + 1, ppLayoutBlank

  Pres.Slides(nbslide + 1).Shapes.AddTextbox(msoTextOrientationHorizontal, 100, 100, 200, 50).TextFrame.TextRange.Text = "Test Box"

  Pres.Slides(nbslide + 1).Shapes.Paste

  ' On enregistre la présentation PowerPoint :

  Pres.Save

  ' Et on quitte PowerPoint proprement :

  ppt.Quit

  Set ppt = Nothing

 

End Sub
0
killy99 Messages postés 25 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 novembre 2008
3 sept. 2008 à 14:57
Merci henry;

J'ai toujours besoin de la référence, mais il est vrai que je fourni le fichier aux utilisateurs, ce fichier s'enregistre dans le répertoire XLSTART, du coups la référence est toujours active :).

Merci beaucoup.
0
Rejoignez-nous