Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Powerpoint > VBA PowerPoint

Réponse
 
Outils de la discussion
Vieux 08/04/2008, 11h06   #1 (permalink)
Invité de passage
 
Date d'inscription: avril 2008
Messages: 9
Par défaut Insérer un objet Word dans un fichier powerpoint, à 1 hauteur et largeur prédéfinies

Bonjour à tous,

En mode page de commentaire, lors d'un import d'objet Word (insert > object > create from file > fichier.doc) dans powerpoint, celui-ci se positionne au milieu de ma page.

Je souhaiterais savoir comment, lors de cet import d'objet, je pourrais "figer" une hauteur et une largeur afin que mon objet se positionne correctement (par exemple: largeur: 3 cm - hauteur: 12 cm).

On m'a parlé de la création d'une macro à cet effet (via Dotnet?). Quelqu'un pourrait-il m'aider? Quelqu'un a-t-il une solution à me proposer, svp?

L'utilisation d'une macro semble inévitable. PowerPoint ne proposant pas cela par défaut.

J'espère avoir été clair...

Merci d'avance!!!

Faninho.
Faninho est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/04/2008, 11h30   #2 (permalink)
Responsable PowerPoint
 
Avatar de Philippe JOCHMANS
 
Date d'inscription: mai 2005
Localisation: Loir et Cher et Touraine
Âge: 40
Messages: 10 012
Envoyer un message via MSN à Philippe JOCHMANS
Par défaut

Bonjour

Pas besoin de macro pour positionner un objet, surtout que tu fais un import manuel.

Tu sélectionnes ton objet, un clique droit pour afficher le menu conceptuel, là tu sélectionnes Mettre en forme l'objet.

Tu auras l'ouverture d'une fenêtre avec des onglets, un onglet Taille et Position.

Edit : La manipulation est valable pour PowerPoint 2002 et 2003, je n'ai pas la version 2007 sous la main (que ce soir), et 2000 pas du tout.

Starec
__________________
En cas de questions techniques par MP ou message visiteur
Office : :Les Cours, Les FAQs
VB : Les Cours, Les FAQs
Mes articles : ici
Me connaitre

Dernière modification par Philippe JOCHMANS ; 08/04/2008 à 11h43
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/04/2008, 11h45   #3 (permalink)
Invité de passage
 
Date d'inscription: avril 2008
Messages: 9
Par défaut

Le truc, c'est que j'ai jusqu'à 100 objets à importer et j'aurais aimé automatiser mon import; pour ne pas à refaire la manip dont tu me parles à chaque fois.
Faninho est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/04/2008, 11h52   #4 (permalink)
Responsable PowerPoint
 
Avatar de Philippe JOCHMANS
 
Date d'inscription: mai 2005
Localisation: Loir et Cher et Touraine
Âge: 40
Messages: 10 012
Envoyer un message via MSN à Philippe JOCHMANS
Par défaut

Ok, il fallait préciser.

Regardes le code que j'ai donné dans cette discussion : http://www.developpez.net/forums/sho...d.php?t=520907

Ce qui va changer dans ton cas c'est le type, donc remplace la lignes
Code :
If shp.Type = msoPicture Then
par
Code :
If shp.Type = msoOLEControlObject Then
cela devrait le faire (pas testé avec un document Word). ou comme type : msoEmbeddedOLEObject ou msoLinkedOLEObject

Par contre ce code ne sert que pour la remise en forme, je vais regarder pour l'import, mais peut-être pas avant ce soir. Il ne faut pas croire mais je bosse.

Starec
__________________
En cas de questions techniques par MP ou message visiteur
Office : :Les Cours, Les FAQs
VB : Les Cours, Les FAQs
Mes articles : ici
Me connaitre
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/04/2008, 11h59   #5 (permalink)
Responsable PowerPoint
 
Avatar de Philippe JOCHMANS
 
Date d'inscription: mai 2005
Localisation: Loir et Cher et Touraine
Âge: 40
Messages: 10 012
Envoyer un message via MSN à Philippe JOCHMANS
Par défaut

Re

Cependant il faudrait un peu plus de détails avant de créer un code d'importation de fichier Word.

Combien ? Tous au même endroit ? etc...

Un espéce de petit cahier des charges, car on peut patauger longtemps.

Starec
__________________
En cas de questions techniques par MP ou message visiteur
Office : :Les Cours, Les FAQs
VB : Les Cours, Les FAQs
Mes articles : ici
Me connaitre
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/04/2008, 12h23   #6 (permalink)
Invité de passage
 
Date d'inscription: avril 2008
Messages: 9
Par défaut

Merci pour ton aide!!!

En fait, a chaque page (format page de commentaire), j'importe un fichier word.

Je te mets une capture d'écran pour te donner une idée.

J'ai environ 100 pages PPT, donc 100 objets Word a réimporter.
Images attachées
Type de fichier : gif exemple.GIF (61,6 Ko, 2 affichages)
Faninho est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/04/2008, 12h25   #7 (permalink)
Responsable PowerPoint
 
Avatar de Philippe JOCHMANS
 
Date d'inscription: mai 2005
Localisation: Loir et Cher et Touraine
Âge: 40
Messages: 10 012
Envoyer un message via MSN à Philippe JOCHMANS
Par défaut

Re

Où sont tes fichiers ? Même répertoire ?
Version de PPT ?

Edit : Y a-t-il un ordre d'insertion ? Comment sont nommés tes fichiers ? Il faut plus de détails.

Starec
__________________
En cas de questions techniques par MP ou message visiteur
Office : :Les Cours, Les FAQs
VB : Les Cours, Les FAQs
Mes articles : ici
Me connaitre
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/04/2008, 12h50   #8 (permalink)
Invité de passage
 
Date d'inscription: avril 2008
Messages: 9
Par défaut

Re,

La version de PPT est la 2000.

Mon fichier powerpoint (PA2_GU.ppt) est au même niveau que mon dossier qui contient tous mes objets Word.

Ce dossier s'appelle "code objet péda". Les fichiers Word sont nommés de la façon suivante: PA2_010.doc, PA2_015.doc, PA2_020.doc, ..., PA2_100;doc

J'insère mon objet PA2_010.doc à la page 7 de mon doc PPT. Et ainsi de suite...
Images attachées
Type de fichier : gif 2008-04-08_124501.gif (1,6 Ko, 2 affichages)
Faninho est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/04/2008, 14h34   #9 (permalink)
Responsable PowerPoint
 
Avatar de Philippe JOCHMANS
 
Date d'inscription: mai 2005
Localisation: Loir et Cher et Touraine
Âge: 40
Messages: 10 012
Envoyer un message via MSN à Philippe JOCHMANS
Par défaut

Re

Dernière question, est-ce que toutes tea diapositives sont crées où les crées tu au fur et à mesure ?

Si je compte bien, tu démarres à 7 + 100, donc 107 diapositives, exact ?

Quel est ton niveau en VBA ?

Starec
__________________
En cas de questions techniques par MP ou message visiteur
Office : :Les Cours, Les FAQs
VB : Les Cours, Les FAQs
Mes articles : ici
Me connaitre

Dernière modification par Philippe JOCHMANS ; 08/04/2008 à 15h11
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/04/2008, 05h10   #10 (permalink)
Responsable PowerPoint
 
Avatar de Philippe JOCHMANS
 
Date d'inscription: mai 2005
Localisation: Loir et Cher et Touraine
Âge: 40
Messages: 10 012
Envoyer un message via MSN à Philippe JOCHMANS
Par défaut

Bonjour

On va essayer de faire quelque chose, mais sans garantie, car je n'ai pas PPT 2000, j'ai travaillé sous PPT 2007.

Dans l'éditeur VBA, insère un module et colle le code suivant à l'intérieur

Code :
Public Sub Chargement()
    ' ===== déclaration des variables =====
    Dim fso As FileSystemObject
    Dim fld As Folder
    Dim fle As File
    Dim i As Integer ' pour incrémenter les slides (diapositives)
    
    ' ===== affectation ====
    Set fso = New FileSystemObject
    Set fld = fso.GetFolder(Application.ActivePresentation.Path & "\Code Objet Pedagogique")
    i = 7 ' pour se mettre sur la première diapositive
    ' on parcours les fichiers du répertoire
    For Each fle In fld.Files
        ' on ajoute le fichier word à la diapositive
        ActivePresentation.Slides(i).Shapes.AddOLEObject 10, 10, 200, 200, , fld.Path & "\" & fle.Name
        ' on teste la dernière diapo avant de continuer
        If i = ActivePresentation.Slides.Count Then
            Exit For
        Else
            i = i + 1
        End If
    Next fle
    MsgBox "Traitement terminé"
    
End Sub
 
Ensuite dans le menu Outils/Référence, recherche la bibliothèque Microsoft Scripting Runtime; coche là et valide.

Ensuite mets le curseur dans la procédure et appuie sur la touche F5, et attends, le traitement peut-être assez long, un message apparaitra à la fin pour te signaler la fin du traitement.

Regardes dans l'aide VB pour voir à quoi correspondent chaque instructions.

Donc sans garantie, car non testé sous PPT 2000. Essayes déjà sur un diaporama vierge d'une dizaine de diapositive (on commence à 7).

Starec
__________________
En cas de questions techniques par MP ou message visiteur
Office : :Les Cours, Les FAQs
VB : Les Cours, Les FAQs
Mes articles : ici
Me connaitre

Dernière modification par Philippe JOCHMANS ; 09/04/2008 à 05h28
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/04/2008, 11h31   #11 (permalink)
Invité de passage
 
Date d'inscription: avril 2008
Messages: 9
Par défaut

Bonjour et tout d'abord merci pour tes infos!!!

Toutes mes diapos sont créées: le powerpoint "traditionnel" est fait; je n'ai plus qu'à ajouter ensuite mes objets word aux bons endroits.

Et effectivement, je démarre à 7 et je vais jusqu'a 107.

mon niveau est intermédiaire, je connais VBA pour avoir fait quelques développements, mais je ne suis pas capables de faire un développement entier comme tu le proposes.

Mais je connais suffisamment le langage pour comprendre ta logique de fonctionnement.

Je vais tester ton code, et je n'hésiterai pas à te recontacter si j'ai des soucis mais également pour te dire que tout est ok ( et j'espère que ce sera pour ce cas-là )
Faninho est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/04/2008, 11h11   #12 (permalink)
Invité de passage
 
Date d'inscription: avril 2008
Messages: 9
Par défaut

Bonjour,

J'ai regardé ton code, celui-ci bloque à la 2è ligne (Dim fso As FileSystemObject).
J'ia le message suivant: compil error: user-defined type not defined
Faninho est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/04/2008, 11h12   #13 (permalink)
Responsable PowerPoint
 
Avatar de Philippe JOCHMANS
 
Date d'inscription: mai 2005
Localisation: Loir et Cher et Touraine
Âge: 40
Messages: 10 012
Envoyer un message via MSN à Philippe JOCHMANS
Par défaut

Bonjour

J'ai écrit dans le post
Citation:
Ensuite dans le menu Outils/Référence, recherche la bibliothèque Microsoft Scripting Runtime; coche là et valide.
Starec
__________________
En cas de questions techniques par MP ou message visiteur
Office : :Les Cours, Les FAQs
VB : Les Cours, Les FAQs
Mes articles : ici
Me connaitre
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/04/2008, 11h59   #14 (permalink)
Invité de passage
 
Date d'inscription: avril 2008
Messages: 9
Par défaut

Ca y est, j'ai reussi à la faire tourner.
Cela importe mes commentaires, seulement, ils sont directement intégrés dans la slide et non pas dans la partie "pages de commentaires"

JE te joins la photo pour que tu vois ce dont je parle
Images attachées
Type de fichier : jpg photo.jpg (65,1 Ko, 1 affichages)
Faninho est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/04/2008, 12h05   #15 (permalink)
Responsable PowerPoint
 
Avatar de Philippe JOCHMANS
 
Date d'inscription: mai 2005
Localisation: Loir et Cher et Touraine
Âge: 40
Messages: 10 012
Envoyer un message via MSN à Philippe JOCHMANS
Par défaut

Re

Il faudrait alors utiliser l'objet Comments au lieu de Shapes, hors selon l'aide, à priori la méthode Add ne permet d'ajouter que du texte et non des fichiers comme avec les shapes.

J'essaierai de tester, mais sans garantie.

Starec
__________________
En cas de questions techniques par MP ou message visiteur
Office : :Les Cours, Les FAQs
VB : Les Cours, Les FAQs
Mes articles : ici
Me connaitre
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation
NEWS MS-OFFICEFAQs OFFICETUTORIELS OFFICELIVRES OFFICESOURCES VBAACCESS

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Powerpoint > VBA PowerPoint

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide