bonjour,
je cherche à automatiser une page word à partir de mon application winform.
Mon code ci-dessous marche bien mais le temps d'execution est bcp trop long.
Cmt puis-je optimiser ce code pour accroître la vitesse d'execution?
merci d'avance.
// Connexion à Word
Word.Application msWord = new Word.Application();
msWord.Visible = true; object missing = System.Reflection.Missing.Value;
// Attribuer le nom
object fileName = "C:\\Test\\calculgéo.doc";
Word.Document nvDoc;
// ouvrir le document existant
nvDoc = msWord.Documents.Open(ref fileName, 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);
// Copie Le texte que je transfère dans le clipboard
string monContenu = vaf.P.Value.ToString("0.000");
DataObject clipData1 = new DataObject(DataFormats.Rtf, monContenu);
Clipboard.SetDataObject(clipData1, false) ;
// Transfert le clipboard dans_u87 ?ord
// On identifie l'emplacement
object field = "cell1";
object fieldEnd = "c1";
object posStart = nvDoc.Bookmarks.get_Item(ref field).Start;
object posEnd = nvDoc.Bookmarks.get_Item(ref fieldEnd).End;
nvDoc.Range( ref posStart, ref posEnd).Select();
// On transfert le texte
msWord.Selection.Paste();
// On déplace le bookmark de fin
nvDoc.Bookmarks.Add((string)fieldEnd, ref missing);
monContenu = inf.textBox1.Text;
DataObject clipData115 = new DataObject(DataFormats.Rtf, monContenu) ;
Clipboard.SetDataObject(clipData115, false) ;
field = "cell115" ;
fieldEnd = "c115";
posStart = nvDoc.Bookmarks.get_Item(ref field).Start;
posEnd = nvDoc.Bookmarks.get_Item(ref fieldEnd).End;
nvDoc.Range( ref posStart, ref posEnd).Select();
msWord.Selection.Paste();
nvDoc.Bookmarks.Add((string)fieldEnd, ref missing);
monContenu = inf.textBox2.Text;
DataObject clipData116 = new DataObject(DataFormats.Rtf, monContenu) ;
Clipboard.SetDataObject(clipData116, false) ;
field = "cell116" ;
fieldEnd = "c116";
posStart = nvDoc.Bookmarks.get_Item(ref field).Start;
posEnd = nvDoc.Bookmarks.get_Item(ref fieldEnd).End;
nvDoc.Range( ref posStart, ref posEnd).Select();
msWord.Selection.Paste();
nvDoc.Bookmarks.Add((string)fieldEnd, ref missing);
monContenu = inf.textBox4.Text;
DataObject clipData117 = new DataObject(DataFormats.Rtf, monContenu) ;
Clipboard.SetDataObject(clipData117, false) ;
field = "cell117" ;
fieldEnd = "c117";
posStart = nvDoc.Bookmarks.get_Item(ref field).Start;
posEnd = nvDoc.Bookmarks.get_Item(ref fieldEnd).End;
nvDoc.Range( ref posStart, ref posEnd).Select();
msWord.Selection.Paste();
nvDoc.Bookmarks.Add((string)fieldEnd, ref missing);
etc....