[Catégorie modifiée VB6 -> VBA] Macro entre excel et powerpoint
schevs10
Messages postés20Date d'inscriptionlundi 4 mai 2009StatutMembreDernière intervention12 décembre 2011
-
6 déc. 2011 à 15:57
schevs10
Messages postés20Date d'inscriptionlundi 4 mai 2009StatutMembreDernière intervention12 décembre 2011
-
9 déc. 2011 à 17:21
Bonjour,
Voici mon sujet :
j'ai un fichier excel avec pleins de tableau. Après la mise à jour des tableaux, je dois les coller sur un powerpoint.
J'aimerais, via une macro, copier et coller les tableaux dans le powerpoint à des endroits spécifiques,en fichier méta amélioré et à des formats pré-déterminés.
le principe est que le fichier excel et powerpoint serait ouvert en même temps.
j'ai trouvé quelques codes qui me permet d'ouvrir le fichier powerpoint à un endroit bien spécifique mais comme le fichier change de nom tous les mois.. je ne sais pas comment faire pour coder en variable...
pourriez vous m'aider ??
merci d'avance de votre retour
Max
PS: voici mon début de code (trouvé sur internet)
' 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('C:\\maPresentation.ppt') 'ouverture fichier ppt
' On active, sélectionne et copie le Graphique Graphique 1 de Excel :
With Pres.Slides(1).Shapes
.Left = 150 'position horizontale dans le slide
.Top = 100 'position verticale dans le slide
.Height = 300 'hauteur image
.Width = 400 'largeur image
End With
' Et on le colle dans la première diapositive de la présentation :
Pres.Slides(1).Shapes.PasteSpecial
' On enregistre la présentation PowerPoint :
Pres.Save
' Et on quitte PowerPoint proprement :
Set ppt = Nothing
End Sub
A voir également:
[Catégorie modifiée VB6 -> VBA] Macro entre excel et powerpoint
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 6 déc. 2011 à 17:55
Salut
Comme on te l'as déjà dit, il est important de choisir correctement la catégorie de question - VBA n'est pas du VB6.
Quand tu colles du code, merci d'utiliser la coloration syntaxique (3eme icone à droite) = plus facile à relire et conserve l'indentation du code.
Ta question porte donc sur la seule instruction
Set Pres = ppt.Presentations.Open('C:\\maPresentation.ppt') 'ouverture fichier ppt
Je trouve bizarre :
- l'utilisation de ' pour encadrer le nom du fichier
- le double \\ en tête.
Quelle difficulté y a t-il à utiliser une variable ?
Dim maVariable As String
maVariable = "C:\maPresentation.ppt"
Set Pres = ppt.Presentations.Open(maVariable) 'ouverture fichier ppt
A toi de voir comment remplir cette variable.
Hors sujet :
Création d'objet :
Dim ppt As PowerPoint.Application
Set ppt = CreateObject("PowerPoint.Application")
Tu dimensionnes correctement ton objet mais tu le crées l'instance bizarrement - Ceci serait plus logique :
Dim ppt As PowerPoint.Application
Set ppt New = PowerPoint.Application
Excel : éviter d'utiliser Select :
Puisque le .Copy s'adresse directement à un Range, la ligne du .Select qui le précède ne sert à rien et fait perdre du temps au code.
Fermeture des objets : Quant à 'la fermeture propre' de PowerPoint, c'est raté :
Tu supprimes l'image de l'objet support, mais tu n'as pas fermé ta présentation.
Il doit bien y avoir un
Pres.Close
puis un
Set Pres = Nothing
et un
ppt.Quit
qui, avant le Set = Nothing, fermeraient proprement les objets.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
'La Presentation est ouverte et la référence à PowerPoint activée
Dim PPApp As PowerPoint.Application
Set PPApp = GetObject(Class:="Powerpoint.Application")
PPApp.ActivePresentation.Slides(4).Select
PPApp.ActivePresentation.Slides(4).Shapes.PasteSpecial(ppPasteDefault, link:=True).Select
End Sub
4) Lors du collage du tableau sur powerpoint, j'aimerais qu'il se place à un endroit précis et avec la bonne dimension => connaissez vous un code ????
5) le mois suivant, ces memes tableaux collés doivent être supprimer => savez vous comment faire ??? j'ai trouvé un code mais qui efface tout... donc pas terrible car il y a des tableaux sur les slides qui ne doivent pas être effacer...