[VBA] Joindre plusieurs documents word ensemble en arrière-plan

Joindre plusieurs documents word ensemble en arrière-plan [VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 08-12-2006 à 15:48:51    

Bonjour!
 
J'ai sous la main un code qui me permet de joindre toute une série de documents ensemble, le problème est que lorsque je l'exécute, il m'ouvre tous les documents les uns après les autres, ce qui est très dérangeant.
 
J'aimerais que cette action se déroule en arrière-plan, croyez-vous que ce soit possible?
 
Voici le code:
 

Code :
  1. Sub ConcatenateAllWordFiles()
  2. Dim path As String
  3. Dim Name As String
  4. path = "xxx"
  5. ActiveDocument.Content.Select
  6. Name = ActiveDocument.Name
  7. Selection.Delete
  8. With Application.FileSearch
  9. .NewSearch
  10. .LookIn = path
  11. .SearchSubFolders = False 'Set this to false if you don't want subfolders included
  12. .Execute
  13. For i = 1 To .FoundFiles.Count
  14. If Right(.FoundFiles(i), 4) = ".doc" Then
  15. Options.UpdateLinksAtOpen = False
  16. Documents.Open FileName:=.FoundFiles(i), Visible:=False, _
  17. ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _
  18. PasswordDocument:="", PasswordTemplate:="", Revert:=False, _
  19. WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _
  20. wdOpenFormatAuto
  21. current = ActiveDocument.Name
  22. Selection.WholeStory
  23. Selection.Copy
  24. Documents(current).Close (wdDoNotSaveChanges)
  25. Selection.Paste
  26. Selection.EndKey Unit:=wdLine
  27. Options.UpdateLinksAtOpen = True
  28. End If
  29. Next i
  30. End With
  31. Documents.Open FileName:=Name, ConfirmConversions:=False _
  32.         , ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
  33.         PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
  34.         WritePasswordTemplate:="", Format:=wdOpenFormatAuto, XMLTransform:=""
  35. ActiveDocument.Content.Select
  36. Selection.Fields.Update
  37. End Sub


 
Si je met l'argument "visible" sur true, il m'ouvre tout les word et je dois ensuite les fermer manuellement, par contre sur false il les ouvre mais les ferme une fois la sélection finie, je voudrais en fait qu'il n'apparaisse rien du tout et qu'il fasse le boulot en arrière plan. Je pense que le problème se situe au niveau de la référence de la fenêtre.
 
Merci d'avance pour vos conseils!  :)


Message édité par schuit001 le 08-12-2006 à 15:49:58
Reply

Marsh Posté le 08-12-2006 à 15:48:51   

Reply

Marsh Posté le 08-12-2006 à 18:52:37    

Bonsoir,
C'est cela que tu cherches?
Cet exemple montre comment désactiver la mise à jour de l'écran, ouvrir le fichier Test.doc, insérer du texte, mettre à jour l'écran, puis fermer le document (après avoir enregistré les modifications).
 
Dim rngTemp As Range
 
ScreenUpdating = False
Documents.Open FileName:="C:\DOCS\TEST.DOC"
 
Set rngTemp = ActiveDocument.Range(Start:=0, End:=0)
 
rngTemp.InsertBefore "new"
Application.ScreenRefresh
ActiveDocument.Close SaveChanges:=wdSaveChanges
ScreenUpdating = True
Cordialement

Reply

Marsh Posté le 18-01-2007 à 12:11:04    

Merci pour ta réponse, ça marche. :)
 
Quelqu'un sait comment je pourrais modifier le code de sorte qu'il aille chercher des documents également dans des sous-dossiers?
 
Merci d'avance.
 

Reply

Marsh Posté le 18-01-2007 à 13:58:30    

Je n'ai rien dit, il suffisait de lire le code :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed