Activer une référence VB grace à une macro Excel [Résolu]

Signaler
Messages postés
25
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 novembre 2008
-
Messages postés
25
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 novembre 2008
-
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

Messages postés
14769
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 février 2021
151
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.

Messages postés
14769
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 février 2021
151
Bonjour,

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

Messages postés
25
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 novembre 2008

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 :) .
Messages postés
14769
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 février 2021
151
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.

Messages postés
25
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 novembre 2008

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
Messages postés
25
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 novembre 2008

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.