Combiner le contenu de plusieurs fichiers words en un seul - Logiciels - Windows & Software
Marsh Posté le 26-01-2004 à 10:48:26
Macro qui copie-colle tous les documents en 1 ?
Marsh Posté le 26-01-2004 à 11:14:04
Bon pour l'instant amber text merger, qui coûte 20 dollars, et qui en démo va me rajouter sa touche personnelle à la fin de chaque document ( pas à la fin des 600 j'espère ! )
Et on dirait qu'il n'a aucune des fonctionnalités énoncées au début du post !
Même sans programmer, ça ne me paraît pourtant pas sorcier de faire une truc fonctionnel, et intelligent !
(je demande même pas que ça soit beau, et je n'y connais rien mais on dirait du visual, ou un truc du genre... )
avec le screenshot et tout
tiens je n'avais même pas remarqué l'url !
Come together !
Marsh Posté le 26-01-2004 à 11:51:24
je pars manger, mais j'essaie de te trouver qqch dans l'après midi
Marsh Posté le 26-01-2004 à 11:56:56
C'est sympa, parce que là il n'y a pas le "converter" pour lire les .docs, juste celui pour les écrire, il faut être enregistré!!!
grrrr
Et c'est pour déposer des textes persos
Marsh Posté le 26-01-2004 à 15:12:43
Valà une macro word qui fait ça.
Si tu veux automatiser le traitement, il suffit de faire un doc word avec un appel à cette macro en autoexec, en modifiant les paramètres (en dur au lieu de demander à l'utilisateur)
Code :
|
Bon courage, n'hésite pas si tu as besoin
Marsh Posté le 26-01-2004 à 16:55:56
Fantastique !
Mais alors, je viens d'essayer et...
(désolé si je dis des bêtises je ne m'y connais que très peu)
1° au bout de deux fichiers il me met "le membre de la collection requis n'existe pas"
si je fais debug :
cette ligne ci
Windows(Application.FileSearch.FoundFiles(i)).Activate
est en jaune
( je précise que j'ai entré le chemin ms dos pour le dossier, mais comme il a trouvé ça n'a peut-être pas d'incidence ? je vais les mettre à la racine pour vérifier )
2° On dirait qu'il ouvre les fichiers, mais je vais vérifier -c'est sur un autre ordi- ( je suis en train de me demander si je ne dis pas une sottise, si ça se trouve j'ai deux fichiers ouverts, celui en cours et le futur final
Sinon, ca risque d'être dur pour l'ordi 600 ouverts d'un coup, même si je peux les faire par paquets.
3° C'est nouveau pour moi les macros, alors je l'ai copiée collée dans visual basic (de words) enregistrée puis éxécutée dans un nouveau document.
J'espère que c'est la bonne procédure, et que je suis compréhensible !
Je retourne tester !
Marsh Posté le 26-01-2004 à 17:10:48
avec le dossier à la racine, et même en otant les sous-dossiers de celui-ci, même réaction
Marsh Posté le 26-01-2004 à 17:19:11
Ok, moi sous word 2000 ça passe pourtant.
pour le 3) c'est bien ça
pour les 1) & 2), le souci vient du fait qu'il ne ferme pas le document, essaie de remplacer le slignes de fermeture par :
Code :
|
Je ne comprend pas pourquoi chez toi ça ne fonctionne pas bien. Le but de ce bout de code c'est de se repositionner sur le document et de le fermer.
Marsh Posté le 26-01-2004 à 19:23:56
j'ai bien word 2000
là j'ai changé, j'ai toujours l'erreur "le membre de la collection requis n'existe pas"
sauf que en debug le jaune est positionné sur "Windows(Right(Application.FileSearch.FoundFiles(i), Len(Application.FileSearch.FoundFiles(i)) - Len(loaddir) - 1)).Activate "
Pour créer la macro, je fais outils / macro/ macros, je copie colle toute ta macro, après je ferme et je fais exécuter macro.
Je me trompe peut-être là-dedans ?
Marsh Posté le 26-01-2004 à 19:47:59
Non c'est ça, la méthode est bonne...
où se passe l'erreur si tu remplace cette ligne par :
Code :
|
Parce que moi ça passe... étrange
Marsh Posté le 26-01-2004 à 20:11:03
alors pour l'instant j'ai ça :
"
Sub conc()
' Parcours un dossier, ouvre les documents et concatènes tous dans un document unique
' bill.fr - pour réponse dans forum Hardware.fr
Dim savedir As String
Dim savefile As String
Dim loaddir As String
' On récupère les valeurs paramétrables
savedir = InputBox("Entrez le chemin où sauver le document complet", , "C:\" )
If (savedir = "" ) Then Return
savefile = InputBox("Entrez le nom document complet", , "concat.doc" )
If (savefile = "" ) Then Return
loaddir = InputBox("Entrez le chemin où charger les documents", , "C:\" )
If (loaddir = "" ) Then Return
' On enregistre le document final
ChangeFileOpenDirectory savedir
Documents.Add DocumentType:=wdNewBlankDocument
ActiveDocument.SaveAs FileName:=savefile, FileFormat:=wdFormatDocument, LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:=False
' On charge les documents
ChangeFileOpenDirectory loaddir
Application.FileSearch.FileName = "*.doc"
Application.FileSearch.LookIn = loaddir
Application.FileSearch.Execute
For i = 1 To Application.FileSearch.FoundFiles.Count
' On copie le document
Documents.Open FileName:=Application.FileSearch.FoundFiles(i), ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="", Format:=wdOpenFormatAuto
Selection.WholeStory
Selection.Copy
' On colle le nom du document puis les données du document
Windows(savefile).Activate
Selection.Font.Bold = wdToggle
Selection.Font.Italic = wdToggle
Selection.Font.Size = 22
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
Selection.TypeText Text:=Application.FileSearch.FoundFiles(i)
Selection.InsertBreak Type:=wdPageBreak
Selection.Paste
Selection.InsertBreak Type:=wdPageBreak
ActiveDocument.Save
' fermeture du document
fichier = Application.FileSearch.FoundFiles(i)
longueur = Len(fichier) - Len(loaddir) - 1
doc = Right(fichier, longueur)
Windows(doc).Activate
ActiveWindow.Close
Next i
End Sub
"
que l'on soit sûrs
meme combat, debug à "Windows(doc).Activate "
par contre j'ai pris quelques fichiers, les ai mis dans un autre répertoire, et là il m'en a fait 18 ou 19 sur 24
même message, mais vers la fin avant d'afficher l'erreur j'ai eu l'impression fugitive qu'il ouvrait un peu en boucle le dernier ( enfin le 18 ou 19 eme )
ah les mystères de l'info...
Marsh Posté le 26-01-2004 à 21:35:29
Ok. Bon voilà ça devrait contourner le problème (testé avec office xp par contre)
attention, il faut que tous les documents soient fermés avant de lancer la macro sinon je garantis pas.
Code :
|
Marsh Posté le 26-01-2004 à 23:15:53
Pfiouu tu assures !
Alors : ça à l'air de fonctionner nickel, à part ... à un moment, erreur d'exécution 5155 ( je crois ) " ce fichier est en lecture seule) il y en a, effectivement. Mais je crois que j'avais vu il y a lgtps un truc pour virer en masse l'attribut de lecture seule.
Sinon il faut que je me fasse un paquet sans ce genre de fichier, pour te dire, car quand cela s'arrête ainsi il ne sauvegarde pas le fichier final semble - t - il
Marsh Posté le 27-01-2004 à 00:07:16
en ligne de commande (cmd sous windows) :
attrib *.doc -r
Marsh Posté le 27-01-2004 à 00:50:24
Ou encore les sélectionner dans l'explorateur, puis clic droit, Propriétés, et décocher Lecture seule.
Marsh Posté le 27-01-2004 à 01:47:29
effectivement pour lecture seule ce n'était pas sorcier !
Alors résultat des courses ! *ouf*
Le dernier ( que j'appellerai version 4 ) fonctionne, mais ne sauvegarde rien au final. Peut-être mon win 98 ?
MAIS le troisième fonctionne dorénavent ( à vue de nez le pb était bêtement donc la lecture seule ?! )
J'ai testé avec 98 fichiers d'affilée, aucun problème.
Seul bémol, un nombre incalculable de pages, et peut-être une erreur de balise ( on va se moquer de moi si j'emploie des termes que je ne connais pas bien ! )
Donc en clair ça donne ça: (le fichier se nomme 4, quelle orignalité ! )
(saut de page)
D:\tri2\4.doc
(saut de page)
D:\Tri documents\4.doc gras et italique
(saut de page)
D:\Tri documents\4.doc
(saut de page)
D:\Tri documents\4.doc gras et italique
(saut de page)
Le texte en lui même
(saut de page)
(saut de page)
(saut de page)
(saut de page)
Ce qui donne par exemple, 493 pages pour mon test et m'a fait croire que j'avais beaucoup écrit ! lol
Cela dit ce n'est pas dramatique, mais je te mentionne tout en bon testeur!
En tout cas merci encore, ce forum est un soulagement pour les neurones - et, en l'occurence, les copier-coller !
Marsh Posté le 27-01-2004 à 11:07:22
Ca m'a fait plaisir.
Marsh Posté le 26-01-2004 à 10:20:12
Ah que clarté et concision dans le titre, espère-je !
Voilà, j'ai environ 600, 700 fichiers word, de taille variable, mais légère, et j'aimerais tout mettre en un, sans y passer des lustres à faire du copier-coller.
Si en plus, il y avait moyen, toujours en automatisant, de les séparer, avec en intitulé le nom des fichiers par exemple, ou autres joyeusetés ?
Et en espérant que ça me laisse la présentation ( forme selon laquelle c'est écrit )
Ca me paraît faisable, et ça me dépannerait diantrement !
Voilà, d'avance merci