Bjr à tous,
j'ai un document word déjà créé, et je voudrais pouvoir copier son contenu plusieurs fois son contenu dans un autre document word...
Savez-vous comment on fait pour copier puis coller le contenu d'un document word
Version imprimable
Bjr à tous,
j'ai un document word déjà créé, et je voudrais pouvoir copier son contenu plusieurs fois son contenu dans un autre document word...
Savez-vous comment on fait pour copier puis coller le contenu d'un document word
Salut
avec l'automation...
Tu instancies un objet Word dans ton application C# , puis tu utilises les
méthodes fournis par word ( à savoir des méthodes du genre Selection, etc..)
puis apres, tu fais du copier / coller classique ou via word.. j'pense pas que cela soit compliqué)
Il y a moult exemple ici pour ouvrir, générer des documents word.. donc, ton opération doit pouvoir facilement se faire.. A condition que word soit présent
sur le poste de l'utilisateur de l'application... car sinon, cela ne marchera pas :)
Regarde les exemples, ca devrait repondre à ta question sans qu'on te fasse
entièrement le code :)
The Monz, Toulouse
lol non je demande pas qu'on me fasse mon programme, quand meme...j'ai trouvé les fonctions pour ouvrir, enregistrer, ajouter du texte, des tableaux, des macros...mais je trouve pas la fonction pour TOUT selectionner
Réponse du bourrin que je tenterais de faire :)
Un SendKeys.Send() à ton application ? mais il doit y avoir un moyen plus
"joli" je pense :)
The Monz, Toulouse
PS : tu as :
(Word.Editor.SelectAll() comme méthode qui pourrait faire l'affaire)
Sinon, sous Object Browser, fait une recherche sur SelectAll et tu verras que
pour le module Word, il y en a quelques méthodes qui correspondent)
ok merci pour l'info, par contre ya un truc que j'ai pas capté...
Une fois que j'ai tout copié, comment je fais pour le transférer à un autre document???
paske je copie avec "nvDoc.SelectAllEditableRanges();" (voir ci-dessous) et comment je le transmet à nvDoc2 qui représente un autre document?
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 Microsoft.Office.Interop.Word.Application msWord = new Microsoft.Office.Interop.Word.Application(); msWord.Visible = true; // mettez cette variable à true si vous souhaitez visualiser les opérations. object missing = System.Reflection.Missing.Value; // Attribuer le chemin du document word String fileName = CheminDoc + "Test.doc"; String NewFileName = CheminDoc + "Test_temp" + ".doc"; Object ONewFileName = CheminDoc + "Test_temp" + ".doc"; Microsoft.Office.Interop.Word.Document nvDoc; // Tester s'il s'agit d'un nouveau document ou d'un document //existant. if (System.IO.File.Exists((string)fileName)) { if (System.IO.File.Exists((string)NewFileName)) { System.IO.File.Delete(NewFileName); } File.Copy(fileName, NewFileName); // ouvrir le document existant nvDoc = msWord.Documents.Open(ref ONewFileName, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); nvDoc.SelectAllEditableRanges(); }
tu pourrais le copier dans le clipboard
The Monz, Toulouse
en fait le "nvDoc.SelectAllEditableRanges();" marche pas du tout :aie:
pour ceux que ça interesse meme si chui pas sur que ça interesse du monde :aie:
il suffit de créer un signet au début du doc et un autre à la fin et de faire :
Code:
1
2
3
4
5
6
7
8
9
10
11 posStart = nvDocFeuillePresence.Bookmarks.get_Item(ref Emplacement1).Start; posEnd = nvDocFeuillePresence.Bookmarks.get_Item(ref Emplacement2).End; nvDocFeuillePresence.Range(ref posStart, ref posEnd).Select(); msWord.Selection.Copy(); nvDoc.Bookmarks.get_Item(ref Feuille_Présence).Range.Select(); msWord.Selection.Paste();
et voila le travail