IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Powerpoint Discussion :

OLE automation / Powerpoint - Excel


Sujet :

Powerpoint

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2010
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 25
    Points : 9
    Points
    9
    Par défaut OLE automation / Powerpoint - Excel
    Bonsoir,

    J'ai une maquette powerpoint contenant une cinquantaine d'objets Excel liés. A chaque fois que j'ouvre cette maquette, que j'ai défini les liaisons en automatiques (et en ne validant pas la mise à jour des liaisons quand l'invite le propose) ou manuelles, la maquette accède quand même au fichier Excel, un processus Excel démarrant autant de fois qu'il y a d'objets et je ne comprends pas ce comportement, étant donné que je n'ai demandé aucune mise à jour. Est-il possible de l'empêcher, et comment ?

    Par ailleurs, les chemins des liaisons n'ont pas tous la même structure. Si certains sont relatifs du type A : fichier_xls!plage_objet..., d'autres sont absolus du type B : chemin\fichier_xls!plage_objet... et je ne trouve pas de raisons à ces différences, les objets ont tous été insérés de la même façon (manuellement), sans déplacer les fichiers PPT et XLS (le XLS étant au même endroit que le PPT). Du coup, quand j'essaie de modifier (via script trouvé ici) les chemins en tentant de mettre un chemin absolu, ceux-ci s'appliquent correctement pour les types B (j'obtiens chemin\fichier_xls!plage_objet) mais pour les types A, toute la référence saute, et seul le nom du fichier est conservé (j'obtiens uniquement fichier_xls). Encore une fois, un comportement que je n'explique pas.

    Merci d'avance pour votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    C'est quoi cette cinquantaine d'objets ? Des tableaux, des graphiques ?

    Est-ce que la modification des chemins qui pose problème est liée à un type objet ?

    Philippe

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2010
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 25
    Points : 9
    Points
    9
    Par défaut
    Les objets sont des tableaux (enfin, des zones de feuilles Excel) et graphiques Excel et les modifications problématiques ne semblent pas liées à un type d'objet, impactant aussi bien des zones de feuilles que des graphiques.

  4. #4
    Futur Membre du Club
    Inscrit en
    Février 2010
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 25
    Points : 9
    Points
    9
    Par défaut
    N'ayant pas trouvé de réponses à mon problème originel, j'ai cherché une solution alternative.

    J'ai essayé une autre solution, reproduire un simple copier/coller en vbscript pour chaque objet.

    Après avoir tenté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    classeurXLS.Sheets(activeSheet).Range("A1:B2").Copy
    presentationPPT.Slides(activeSlide).Paste
    qui me renvoie un message d'erreur bien connu apparemment :

    clipboard is empty or contains data which may not be pasted here

    j'ai essayé une autre solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    classeurXLS.Sheets(activeSheet).Range("A1:B2").CopyPicture
    presentationPPT.Slides(activeSlide).Paste
    qui a pour effet de copier la sélection Excel en Métafichier Windows Amélioré (.emf, ne voulant pas les copier en .png dont le rendu est moins fidèle, ça me va très bien). Mais si mes objets sont cette fois copiés correctement, et apparaissent aussi bien en visualisation qu'en aperçu avant impression, ils ne s'impriment pas avec cette méthode ?!


    J'ai alors essayé de les copier en HTML en tentant de contourner l'erreur rencontrée plus haut dont voici le code (relativement) complet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    For Each pptSlide In presentationPPT.Slides     
     
    classeurXLS.Sheets(activeSheet).Range("A1:B1").Copy
     
    With Powerpoint.ActiveWindow		
    	.View.GotoSlide pptSlide.SlideIndex
    	.View.Paste
    End With    				
     
    ' Compte le nombre de shapes dans le slide, le dernier objet inséré correspond possède l'index le plus élevé
    NbShape = pptSlide.Shapes.Count   
     
    With pptSlide.Shapes(NbShape)
    	.Left = 2.75 * coefficient   ' Définit la position horizontale dans le slide
    	.Top = 9.72 * coefficient    ' Définit la position verticale dans le slide
    	.Height = 3.57 * coefficient ' Hauteur
    	.Width = 18.68 * coefficient ' Largeur
    End With 					
     
    Next
    Et là, si 98% de mes objets sont copiés correctement, à la bonne position, certains se retrouvent parfois, de façon aléatoire, en dehors du slide alors que je n'applique qu'un seul et unique positionnement pour tous les objets ?!


    c'est moche. J'ai vraiment besoin d'aide.

    Merci.

  5. #5
    Invité
    Invité(e)
    Par défaut Début de réponse
    Bonjour datastep,

    Au sujet de votre premier problème dans votre premier message, pour moi cela s'est résolu en mettant à jour Microsoft Office 2007 SP2.

    Au sujet de votre deuxième problème, je vous conseille d'aller voir ce fil de discussion, dans lequel je me penche sur le problème des liaisons relatives et absolues sans arriver totalement à le résoudre. Cependant vous y trouverez sûrement un début de solution à votre situation.

    Cordialement,

    Antoine

  6. #6
    Futur Membre du Club
    Inscrit en
    Février 2010
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 25
    Points : 9
    Points
    9
    Par défaut
    Bonjour, et merci pour cette réponse.

    J'ai cependant laissé tomber cette première méthode avec les objets OLE et me concentre maintenant sur des méthodes de copier/coller, que j'imaginais plus simples, mais qui finalement sont tout autant problématiques.

    Une chose que j'ai remarqué, concernant les images qui ne s'impriment pas, ce qu'elles s'impriment, quand je sélectionne "imprimer : pages de commentaires"

Discussions similaires

  1. [WD12] copier une feuille excel en ole automation
    Par Ratafia67 dans le forum WinDev
    Réponses: 5
    Dernier message: 16/04/2010, 08h54
  2. [WD12] exécuter une macro excel avec ole automation
    Par Ratafia67 dans le forum WinDev
    Réponses: 2
    Dernier message: 15/04/2010, 07h57
  3. OLE Automation Excel - insertion d'une image
    Par Silvia12 dans le forum WinDev
    Réponses: 1
    Dernier message: 19/03/2008, 08h32
  4. Manipuler Excel via Ole automation
    Par falcon dans le forum Excel
    Réponses: 3
    Dernier message: 02/10/2007, 15h39
  5. OLE automation pour Excel
    Par escteban dans le forum VBScript
    Réponses: 5
    Dernier message: 19/04/2007, 12h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo