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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [WORD] insérer un saut de page dans document fils

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[WORD] insérer un saut de page dans document fils

n°1838437
schlopa67
Posté le 15-01-2009 à 15:33:49  profilanswer
 

Bonjour
 
dsl pour le titre, j'ai eu du mal à en trouver un explicite
 
 
Voilà le topo : je dois créer un script VBA qui permette de créer un nouveau document Word, puis de sélectionner une liste d'images, et de coller ces images dans ce document Word mais avec 1 image = 1 page
 
 
Voilà mon script :
 

Code :
  1. Sub InsIMG()
  2.     Dim FichDest As String  'contiendra le chemin du fichier de destination
  3.     Dim WordApp As Word.Application
  4.     Dim WordDoc As Word.Document
  5.    
  6. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  7.     MsgBox "Destination du fichier de sortie ? (Cliquer 'ok')"
  8.    
  9.     Dim fd As FileDialog
  10.     Set fd = Application.FileDialog(msoFileDialogSaveAs)
  11.     With fd
  12.         .AllowMultiSelect = False
  13.         .Title = "Sélectionnez le fichier de destination"
  14.         .InitialFileName = "DestinationFinale.doc"
  15.         .FilterIndex = 3
  16.         If .Show = -1 Then
  17.             FichDest = .SelectedItems(1) 'chemin fichier variable "FichDest"
  18.         End If
  19.     End With
  20.        
  21.     Set WordApp = CreateObject("Word.Application" )     '-- ouvre une session Word
  22.     WordApp.Visible = False
  23.     Set WordDoc = WordApp.Documents.Add    '-- crée un nouveau document
  24.     WordDoc.SaveAs FichDest        '-- enregistre le nouveau doc
  25.     WordDoc.Close
  26.    
  27. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' bon j'ai fermé le doc pour le rouvrir, juste pour être sur
  28.     Set WordApp = CreateObject("Word.Application" )
  29.     WordApp.Visible = True
  30.     Set WordDoc = WordApp.Documents.Open(FichDest)
  31.        
  32.     MsgBox "Sélectionner les images à insérer"
  33.        
  34.     Dim SelecImg As String  'contiendra les fichiers images à insérer dans le doc
  35.     Dim fd2 As FileDialog
  36.    
  37.    
  38.     Set fd2 = Application.FileDialog(msoFileDialogFilePicker)
  39.     With fd2
  40.         .Title = "Sélectionnez les fichiers"
  41.         .AllowMultiSelect = True
  42.         .InitialView = msoFileDialogViewDetails
  43.          With .Filters
  44.             .Clear
  45.             .Add "Fichiers Images", "*.tiff; *.jpg; *.jpeg; *.bmp; *.png; *.gif", 1
  46.             .Add "Tous les fichiers", "*.*", 2
  47.         End With
  48.         .FilterIndex = 1
  49.         If .Show = -1 Then
  50.     '        SelecImg = .SelectedItems(1)    'chemin fichier variable "FichDest"
  51.             For Each vrtSelectedItem In .SelectedItems
  52.                 MsgBox "Selected item's path: " & vrtSelectedItem
  53.                 WordDoc.InlineShapes.AddPicture FileName:=vrtSelectedItem, linkToFile:=False, saveWithDocument:=True
  54.                 With WordDoc.InlineShapes(1) 'ActiveDocument.Shapes.Countadapter l'index si d'autres images existantes dans le document WordDoc.InlineShapes.Count
  55.                     .Height = 900    'changement dimension image insérée : hauteur 850
  56.                     .Width = 700    'largeur  600
  57.                     .ConvertToShape
  58.                 End With
  59.                 With WordDoc.Shapes(1)
  60.                     .Top = -65    'position verticale de l'image dans le document  -70 = suppresion des marges...
  61.                     .Left = -70    'position horizontale de l'image dans le document
  62.                     .ZOrder msoBringInFrontOfText    'image au premier plan devant le texte
  63.                 End With
  64.                  
  65.          Selection.InsertBreak Type:=wdPageBreak
  66.          Selection.TypeText Text:="je viens de faire un saut de page"
  67.          Next
  68.            
  69.         End If
  70.     End With
  71.        
  72.   ' WordDoc.Close 'fermer le document Word
  73.   '  WordApp.Quit 'fermer l'application Word
  74. End Sub


 
Le problème c'est qu'il me met le saut de page dans le document à partir duquel j'ai lancé la macro. En gros, je souhaite trouver un moyen de lui dire "maintenant tu prends en compte le curseur dans le document qui a été crée, et plus le curseur du document inital.
 
Je ne sais pas si j'ai été clair...
 
Quelqu'un aurait-il une idée de génie ?
 
merci d'avance et bonne journée


---------------
feedback
mood
Publicité
Posté le 15-01-2009 à 15:33:49  profilanswer
 

n°1838440
FlorentG
Posté le 15-01-2009 à 15:36:51  profilanswer
 

Ton :

Code :
  1. Selection.InsertBreak Type:=wdPageBreak
  2. Selection.TypeText Text:="je viens de faire un saut de page"


Le Selection sans . devant, ou sans être appliqué à un objet, forcément ça va être dans le document qui lance la macro.
 
Faudrait plutôt l'appeller sur WordDoc (ou sur la variable qui a une propriété Selection)

n°1838452
schlopa67
Posté le 15-01-2009 à 15:44:54  profilanswer
 

hum, je m'excuse, mais la POO ne fait pas (encore) partie de mes compétences et je code en VBA que depuis hier...
 
en gros, j'ai pas compris ce que tu essayes de me dire avec le "."
 
EDIT : j'avais essayé "WordDoc.Selection.InsertBreak Type:=wdPageBreak Type:=wdPageBreak"  mais il me sort une erreur "Propriété ou Méthode non Gérée par cet objet" d'où mon interrogation


Message édité par schlopa67 le 15-01-2009 à 15:50:12

---------------
feedback
n°1838455
FlorentG
Posté le 15-01-2009 à 15:49:04  profilanswer
 

Faut trouver qui a la propriété Selection :D Je regarde

n°1838457
FlorentG
Posté le 15-01-2009 à 15:50:55  profilanswer
 

Apparement ce serai WordDoc.ActiveWindow.Selection ?

n°1838464
schlopa67
Posté le 15-01-2009 à 15:55:33  profilanswer
 

Ah mince effectivement ça marche :)
 
Je peux te demander un dernier service ? où est-ce que tu as regardé pour trouver ça ?


---------------
feedback
n°1838471
FlorentG
Posté le 15-01-2009 à 15:59:40  profilanswer
 

J'ai Word 2003, j'ai ouvert l'aide, puis Table des Matières, Référence Visual Basic Microsoft Word, Propriétés, S, Selection.
 
Et là en haut, y'a un "S'applique à", puis de fil en aiguille tu constates que ça s'applique sur un objet Window, qu'on peut récupérer sur un objet Word.Application (ton WordDoc), via ActiveWindow

n°1838479
schlopa67
Posté le 15-01-2009 à 16:05:27  profilanswer
 

J'utilise Word 2007, et je n'ai pas la mm arborescence que toi
 
Mais il faut dire que je n'ai pas regardé au bon endroit (j'étais dans les objets et les méthodes, mais pas propriétés)
 
Merci beaucoup, je pense pouvoir finir seul  !


---------------
feedback
n°1838480
FlorentG
Posté le 15-01-2009 à 16:06:17  profilanswer
 

Bon courage, et bonjour à Sélestat :D


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

  [WORD] insérer un saut de page dans document fils

 

Sujets relatifs
Page de chargementTarget vers la page principale
Page de maintenanceInsérer un code dans une page php
Créer une page de dispatch en php en fonction de l'url saisieZoom sur image par dessus document
ouvrir une page à distance en HTTP GET, y envoyer des HTTP POST, cUrl,inserer un personnage dans openGL
pb de liens/ affichage page php 
Plus de sujets relatifs à : [WORD] insérer un saut de page dans document fils


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