une vidéo sous word??? [VBA] - VB/VBA/VBS - Programmation
MarshPosté le 23-08-2009 à 12:03:12
Bonjour,
voila mon idée : je souhaite mettre une vidéo dans un document word!
Le document à imprimer fait plusieurs centaines de pages. Je voudrai mettre toujours à la même place dans une des marges de la page une image d'une vidéo (différente à chaque page)... Une fois le bouquin imprimé, si on fait défiler vite les pages, on voit une mini vidéo logiquement
Le principe est amusant mais en pratique je cale :
1 jai trouvé (en m'inspirant du net, car là jai eu du mal) comment sélectionner les images dans un dossier
2 jai trouvé comment insérer une image toujours au même endroit la page
3 jai trouvé comment sélectionner la page suivante
4 mais les étapes 2 et 3 ne sont pas compatibles : mon code sélectionne les pages mais fixe toujours l'image sur la 1ere page et si on utilise inlineshapes au lieu de shapes on perd toute la mise en page du document original
Si vous essayez chez vous : a/ au premier lancement après choix d'un fichier le programme plante
b/ aux autres lancement il prend le dossier dans lequel était le fichier (et essaie d'insérer tout ce qu'il y a avait dedans)
c/ pour changer de dossier il faut quitter word et tout relancer
d/ pas la peine d'essayer avec plus de 10 images pour débuter car la mémoire sature vite si on force word a supperposer toutes les images
e/ merci d'essayer de m'aider!
Je sens que je suis proche du but, mais je connais assez mal la syntaxe VBA.
Voici le code :
Sub gg()
Dim fs, f, f1, fc, s Dim i, NbPages As Long NbPages = ActiveDocument.BuiltInDocumentProperties(wdPropertyPages)
With Dialogs(wdDialogFileFind) .Display ChangeFileOpenDirectory .SearchPath Set fs = CreateObject("Scripting.FileSystemObject" ) Set f = fs.GetFolder(.SearchPath) Set fc = f.Files For Each f1 In fc 'boucle pour les images
For i = 1 To NbPages 'boucle sur les pages With ActivePage.Shapes 'le problème est là... .AddPicture _ FileName:=f1.Name, _ LinkToFile:=False, SaveWithDocument:=True, Left:=200, Top:=20 End With
Application.Browser.Next 'pour passer a la page suivante 'Stop Next i Next End With
Marsh Posté le 23-08-2009 à 12:03:12
Bonjour,
voila mon idée : je souhaite mettre une vidéo dans un document word!
Le document à imprimer fait plusieurs centaines de pages. Je voudrai mettre toujours à la même place dans une des marges de la page une image d'une vidéo (différente à chaque page)...
Une fois le bouquin imprimé, si on fait défiler vite les pages, on voit une mini vidéo logiquement
Le principe est amusant mais en pratique je cale :
1 jai trouvé (en m'inspirant du net, car là jai eu du mal) comment sélectionner les images dans un dossier
2 jai trouvé comment insérer une image toujours au même endroit la page
3 jai trouvé comment sélectionner la page suivante
4 mais les étapes 2 et 3 ne sont pas compatibles : mon code sélectionne les pages mais fixe toujours l'image sur la 1ere page et si on utilise inlineshapes au lieu de shapes on perd toute la mise en page du document original
Si vous essayez chez vous :
a/ au premier lancement après choix d'un fichier le programme plante
b/ aux autres lancement il prend le dossier dans lequel était le fichier (et essaie d'insérer tout ce qu'il y a avait dedans)
c/ pour changer de dossier il faut quitter word et tout relancer
d/ pas la peine d'essayer avec plus de 10 images pour débuter car la mémoire sature vite si on force word a supperposer toutes les images
e/ merci d'essayer de m'aider!
Je sens que je suis proche du but, mais je connais assez mal la syntaxe VBA.
Voici le code :
Sub gg()
Dim fs, f, f1, fc, s
Dim i, NbPages As Long
NbPages = ActiveDocument.BuiltInDocumentProperties(wdPropertyPages)
With Dialogs(wdDialogFileFind)
.Display
ChangeFileOpenDirectory .SearchPath
Set fs = CreateObject("Scripting.FileSystemObject" )
Set f = fs.GetFolder(.SearchPath)
Set fc = f.Files
For Each f1 In fc 'boucle pour les images
For i = 1 To NbPages 'boucle sur les pages
With ActivePage.Shapes 'le problème est là...
.AddPicture _
FileName:=f1.Name, _
LinkToFile:=False, SaveWithDocument:=True, Left:=200, Top:=20
End With
Application.Browser.Next 'pour passer a la page suivante
'Stop
Next i
Next
End With
End Sub
PERSONNE???? HELP!!!!!
Message édité par gregy9 le 17-09-2009 à 10:25:05