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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°1488682
schuit001
Posté le 08-12-2006 à 15:48:51  profilanswer
 

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
mood
Publicité
Posté le 08-12-2006 à 15:48:51  profilanswer
 

n°1488833
seniorpapo​u
Posté le 08-12-2006 à 18:52:37  profilanswer
 

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

n°1504570
schuit001
Posté le 18-01-2007 à 12:11:04  profilanswer
 

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.
 

n°1504604
schuit001
Posté le 18-01-2007 à 13:58:30  profilanswer
 

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


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

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

 

Sujets relatifs
Questionnaire sous word[VBA] Affecter une valeur à une zone de texte récalcitrante
VBA - Insertion lien hypertexte dans le corp d'un mailEffectuer une recherche avec des SELECT Option à plusieurs niveaux
Replication de bases Access pour plusieurs sites distants ?Diviser un calque en plusieurs
Ajout de header GPL dans plusieurs fichers sourcePartager un dossier avec plusieurs sites
image dégradée d'arreire plan! (je donne un exemple de page web)VBA d'Excel 2003 : Module de classe, Private Sub() : ?
Plus de sujets relatifs à : [VBA] Joindre plusieurs documents word ensemble en arrière-plan


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