Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1686 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  enregistrer avec powerpoint

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

enregistrer avec powerpoint

n°2173209
minimoack
Posté le 30-01-2013 à 09:10:17  profilanswer
 

Bonjour,
 
Quelqu'un saurait-il quel est l'équivalent pour un powerpoint de :  

Code :
  1. ActiveWorkbook.SaveAs "Comparaison", xlNormal

 
 
Merciiii  :)

mood
Publicité
Posté le 30-01-2013 à 09:10:17  profilanswer
 

n°2173224
sh_kyra
Entre nous c'est Kyra
Posté le 30-01-2013 à 10:05:52  profilanswer
 

Salut

 

Call Application.ActivePresentation.SaveAs("Comparaison", ppSaveAsDefault)


Message édité par sh_kyra le 30-01-2013 à 10:06:13
n°2173229
minimoack
Posté le 30-01-2013 à 10:13:30  profilanswer
 

Tout d'abord, merci de m'avoir répondu :) j'essaye ça et je te dis :D

n°2173231
minimoack
Posté le 30-01-2013 à 10:19:38  profilanswer
 

Si je mets ça,  

Code :
  1. Call Application.ActivePresentation.SaveAs("Comparaison", ppSaveAsDefault)


 
Un message d'erreur s'affiche :  
"Propriété ou méthode non gérée par cet objet"
 
De même si j'enlève le "call"
 
J'ai essayé :  

Code :
  1. ActivePresentation.SaveAs "Rapport", ppSaveAsDefault


 
et ça me donne :  
"Un composant ActiveX ne peut pas créer d'objet" ...  :sweat:  
 
 :jap:  merci de m'aider ^^

n°2173237
sh_kyra
Entre nous c'est Kyra
Posté le 30-01-2013 à 10:23:19  profilanswer
 

minimoack a écrit :

Si je mets ça,

Code :
  1. Call Application.ActivePresentation.SaveAs("Comparaison", ppSaveAsDefault)
 

Un message d'erreur s'affiche :
"Propriété ou méthode non gérée par cet objet"

 

De même si j'enlève le "call"

 

J'ai essayé :

Code :
  1. ActivePresentation.SaveAs "Rapport", ppSaveAsDefault
 

et ça me donne :
"Un composant ActiveX ne peut pas créer d'objet" ...  :sweat:

 

:jap:  merci de m'aider ^^

 

Tu peux donner le reste de ton code?

 

J'ai fait un bouton sur une feuille de présentation et codé l'évenement click et le fichier s'est bien enregistré sous ce nom là.

 
Code :
  1. Private Sub CommandButton1_Click()
  2. Application.ActivePresentation.SaveAs "bla", ppSaveAsDefault
  3. End Sub
 

Call ne change rien normalement. C'est juste plus propre.
Enlève moi un doute, tu es bien sous powerpoint? Tu n'essayes pas d'enregistrer ton PPT depuis Excel par hasard? ;)


Message édité par sh_kyra le 30-01-2013 à 10:25:27
n°2173239
minimoack
Posté le 30-01-2013 à 10:26:17  profilanswer
 

Tiens  :D  
 

Code :
  1. Public Function ppt()
  2.     Dim ppapp As PowerPoint.Application
  3.     Dim Pres As PowerPoint.Presentation
  4.     Dim Diapo1 As PowerPoint.Slide
  5.     Dim Diapo2 As PowerPoint.Slide
  6.     Dim handle As Long
  7.     Dim nomFichier As String
  8.    
  9.     handle = 0
  10.     ' On ouvre le powerpoint
  11.     Set ppapp = CreateObject("PowerPoint.Application" )
  12.        
  13.     ' Et on lui dit de quelle présentation il s'agit :
  14.     nomFichier = OuvrirUnFichier(handle, "Sélectionner le masque", 1, "Microsoft Powerpoint", "ppt" )
  15.    
  16.     ppapp.Visible = True ' Indispensable, sinon il ne peut pas ouvrir de fichier (Erreur)
  17.    
  18.     Set Pres = ppapp.Presentations.Open(nomFichier)
  19.     ppapp.Activate
  20.    
  21.     ' Avec la présentation ouverte
  22.     With Pres
  23.        
  24.         ' on dit que la 2ème diapo a pour nom Diapo1
  25.         Set Diapo1 = .Slides(2)
  26.         'On copie la zone de texte
  27.         Diapo1.Shapes("Rectangle 2" ).Copy
  28.        
  29.         ' on ajoute une diapositive qu'on nomme Diapo2
  30.         Set Diapo2 = .Slides.Add(Index:=3, Layout:=ppLayoutBlank)
  31.         'On sélectionne la diapo2 et on colle la zone de texte
  32.         Diapo2.Select
  33.         Diapo2.Shapes.Paste
  34.  
  35.         ' Copie du graphe1 excel
  36.         Workbooks("Comparaison.xls" ).Sheets("Comparaison de la taille" ).Activate
  37.         ActiveSheet.ChartArea.Select
  38.         ActiveSheet.ChartArea.Copy
  39.         ' On colle le graphe dans la présentation
  40.         Set Shape1 = Diapo1.Shapes.Paste
  41.         ' et on le redimensionne
  42.         Shape1.Top = 40
  43.         Shape1.Left = 20
  44.         Shape1.Width = 430
  45.         Shape1.Height = 430
  46.        
  47.         ' Copie du graphe2 excel
  48.         Workbooks("Comparaison.xls" ).Sheets("Evolution de la taille" ).Activate
  49.         ActiveSheet.ChartArea.Select
  50.         ActiveSheet.ChartArea.Copy
  51.         ' On colle le graphe dans la présentation
  52.         Set Shape2 = Diapo2.Shapes.Paste
  53.         ' et on le redimensionne
  54.         Shape2.Top = 40
  55.         Shape2.Left = 20
  56.         Shape2.Width = 430
  57.         Shape2.Height = 430
  58.        
  59.         .Slides(1).Select
  60.        
  61.     End With
  62.    
  63.     ppapp.Activate
  64.     'et là on enregistre
  65.     'ActivePresentation.SaveAs "Rapport", ppSaveAsDefault
  66.                
  67. End Function

n°2173241
minimoack
Posté le 30-01-2013 à 10:26:45  profilanswer
 

euh ... sur excel  :whistle:

Message cité 1 fois
Message édité par minimoack le 30-01-2013 à 10:27:09
n°2173243
minimoack
Posté le 30-01-2013 à 10:28:35  profilanswer
 

Désolée d'avoir oublié de le préciser -_-'
Comment as-tu deviné? à cause des messages d'erreur? Tu peux m'expliquer à quoi correspond ce message ActiveX?

n°2173244
sh_kyra
Entre nous c'est Kyra
Posté le 30-01-2013 à 10:29:56  profilanswer
 

minimoack a écrit :

euh ... sur excel  :whistle:

 

Parce que du coup c'est pas pareil, ActivePresentation ne peut être disponible que depuis l'objet Powerpoint ;)
Et quand tu tapes sur l'objet Application, tu es sur l'objet de l'application courante, s'il ne te trouve pas ActivePresentation (ce que veut dire "Propriété ou méthode non gérée par cet objet" ) c'est que tu n'es pas sur powerpoint.

 
Code :
  1. Pres.SaveAs "Rapport", ppSaveAsDefault
 

Essayes ça, ça devrait marcher.

 

Pense bien à fermer ton objet Powerpoint à la fin.

 
Code :
  1. ppapp.Quit



Message édité par sh_kyra le 30-01-2013 à 10:34:42
n°2173248
minimoack
Posté le 30-01-2013 à 10:34:51  profilanswer
 

"Erreur d'exécution '-2147467259 (80004005)' :
Presentation (unknown member) : Powerpoint n'a pas réussi à ouvrir ou à enregistrer ce document. Vérifiez que vous disposez des autorisations de lecture et d'écriture requises et que le document n'est pas crypté"
 
...  
 

mood
Publicité
Posté le 30-01-2013 à 10:34:51  profilanswer
 

n°2173249
minimoack
Posté le 30-01-2013 à 10:36:11  profilanswer
 

Je suis obligée de le fermer?
en fait si je l'enregistre, c'est pour que l'utilisateur ne l'enregistre pas sous la présentation que j'ouvre avec nomFichier, mais j'aimerais garder la présentation ouverte

n°2173250
sh_kyra
Entre nous c'est Kyra
Posté le 30-01-2013 à 10:43:26  profilanswer
 

Ok, c'est juste que tu n'as pas les droits sur ton répertoire de sauvegarde par défaut.

 

Essayes ça:

 
Code :
  1. Pres.SaveAs Pres.Path & "\" & "Rapport", ppSaveAsDefault
 

Ah non t'es pas obligée de fermer, si tu veux laisser ouvert, laisses ouvert. Par contre fait attention, à chaque fois que ta macro va tourner, tu vas créer un process powerpoint en mémoire...

 

C'est pas important si tu le fermes manuellement à chaque fois ou que c'est pas récursif! ;)


Message édité par sh_kyra le 30-01-2013 à 10:46:34
n°2173251
minimoack
Posté le 30-01-2013 à 10:46:06  profilanswer
 

Qu'est-ce que l'ActiveX, quel genre d'erreur?
 
Je vais essayer ce que tu viens de me mettre merci :D

Message cité 1 fois
Message édité par minimoack le 30-01-2013 à 11:04:23
n°2173253
minimoack
Posté le 30-01-2013 à 10:47:59  profilanswer
 

(ça marche merci :D  :jap:)

n°2173264
sh_kyra
Entre nous c'est Kyra
Posté le 30-01-2013 à 11:16:59  profilanswer
 

minimoack a écrit :

Qu'est-ce que l'ActiveX, quel genre d'erreur?
 
Je vais essayer ce que tu viens de me mettre merci :D


 
Wikipédia expliquera mieux que moi : http://fr.wikipedia.org/wiki/ActiveX
 
Ravi que ça fonctionne :)

n°2173267
minimoack
Posté le 30-01-2013 à 11:22:01  profilanswer
 

L'ActiveX a l'air d'être un truc assez compliqué, je vais me pencher dessus :D
 
Merciiiiiiii !!  

n°2173274
minimoack
Posté le 30-01-2013 à 11:34:24  profilanswer
 

... j'ai un peu de mal à comprendre dans notre situation, l'erreur avec l'ActiveX... :sweat:
En gros, ça veut dire que je ne peux pas utiliser "ActivePresentation", qui est une méthode de Powerpoint (supposition) dans Excel, car l'ActiveX ne le gère pas?
J'ai compris que c'était un outil qui permettait de dialoguer entre les programmes, et donc qu'il permettait (ici) dans Excel d'avoir accès à certaines méthodes de Powerpoint...  
J'ai bon?

n°2173280
sh_kyra
Entre nous c'est Kyra
Posté le 30-01-2013 à 11:45:58  profilanswer
 

minimoack a écrit :

... j'ai un peu de mal à comprendre dans notre situation, l'erreur avec l'ActiveX... :sweat:
En gros, ça veut dire que je ne peux pas utiliser "ActivePresentation", qui est une méthode de Powerpoint (supposition) dans Excel, car l'ActiveX ne le gère pas?
J'ai compris que c'était un outil qui permettait de dialoguer entre les programmes, et donc qu'il permettait (ici) dans Excel d'avoir accès à certaines méthodes de Powerpoint...
J'ai bon?

 

En fait c'est un peu compliqué, mais je vais essayer d'être un peu simpliste...

 

Quand tu ajoutes la référence Microsoft PowerPoint VBA te donnes l’accès à l'objet (qui n'est qu'un raccourci/alias - comme ActiveWorksheet) ActivePresentation.

 

Le problème est, que, dans ton cas, ActivePresentation n'existe pas DANS Excel, seulement dans ton objet PowerPoint (ppapp dans ton cas). Il pourrait exister DANS Excel dans le cas où tu aurais INCLUS ton PowerPoint dans Excel (En tant que lien OLE: http://fr.wikipedia.org/wiki/Objec [...] _Embedding )

 

Donc le compilateur cherche via les ActiveX (qui gère les OLE) la présence de ton ActivePresentation DANS Excel, comme elle n'existe pas (= Nothing), le composant ActiveX te renvoie une erreur.

 

Voila, en gros, j'espère avoir été à peu près clair ;)


Message édité par sh_kyra le 30-01-2013 à 11:47:16
n°2173282
minimoack
Posté le 30-01-2013 à 11:49:34  profilanswer
 

Oui c'est plus clair déjà merci :D
c'est vrai que c'est assez difficile à comprendre, mais j'ai saisi l'idée!
 
Merci de m'avoir accordé tout ce temps !!! ^^
 :D

n°2173286
sh_kyra
Entre nous c'est Kyra
Posté le 30-01-2013 à 11:53:31  profilanswer
 

minimoack a écrit :

Oui c'est plus clair déjà merci :D
c'est vrai que c'est assez difficile à comprendre, mais j'ai saisi l'idée!
 
Merci de m'avoir accordé tout ce temps !!! ^^
 :D


 
C'est toujours un plaisir d'aider une collègue toulousaine ;)

n°2173290
minimoack
Posté le 30-01-2013 à 11:58:25  profilanswer
 

Vive la ville rose, et la solidarité toulousaine! :)

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  enregistrer avec powerpoint

 

Sujets relatifs
Enregistrer mesures LabviewEnvoi de mail depuis Powerpoint
Enregistrer formulaires dans 2 tables mysqlenregistrer source d'une page externe après traitement
enregistrer des actions et en faire une "macro"[Resolu] Word 2010, ouvrir un fichier .doc et l'enregistrer en .pdf
enregistrer une select multipleComment enregistrer ordre de clic dans des checkbox
Enregistrer mon jeu java 
Plus de sujets relatifs à : enregistrer avec powerpoint


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR