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

killy99 25 Messages postés lundi 5 mars 2007Date d'inscription 5 novembre 2008 Dernière intervention - 3 sept. 2008 à 11:28 - Dernière réponse : killy99 25 Messages postés lundi 5 mars 2007Date d'inscription 5 novembre 2008 Dernière intervention
- 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.
Afficher la suite 

6 réponses

Répondre au sujet
NHenry 14129 Messages postés vendredi 14 mars 2003Date d'inscription 19 avril 2018 Dernière intervention - 3 sept. 2008 à 14:46
+3
Utile
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.

Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de NHenry
NHenry 14129 Messages postés vendredi 14 mars 2003Date d'inscription 19 avril 2018 Dernière intervention - 3 sept. 2008 à 13:20
0
Utile
Bonjour,

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

Commenter la réponse de NHenry
killy99 25 Messages postés lundi 5 mars 2007Date d'inscription 5 novembre 2008 Dernière intervention - 3 sept. 2008 à 13:33
0
Utile
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 :) .
Commenter la réponse de killy99
NHenry 14129 Messages postés vendredi 14 mars 2003Date d'inscription 19 avril 2018 Dernière intervention - 3 sept. 2008 à 14:25
0
Utile
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.

Commenter la réponse de NHenry
killy99 25 Messages postés lundi 5 mars 2007Date d'inscription 5 novembre 2008 Dernière intervention - 3 sept. 2008 à 14:34
0
Utile
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
Commenter la réponse de killy99
killy99 25 Messages postés lundi 5 mars 2007Date d'inscription 5 novembre 2008 Dernière intervention - 3 sept. 2008 à 14:57
0
Utile
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.
Commenter la réponse de killy99

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.