object ox_word = null;
try
{
    Type type = Type.GetTypeFromProgID("word.basic");
    ox_word = Activator.CreateInstance(type);
    type.InvokeMember("FileOpen", BindingFlags.Default | BindingFlags.InvokeMethod, null, ox_word, new object[1] { @"C:\Test\lettre.docx" });
    type.InvokeMember("ww7_editGoto", BindingFlags.Default | BindingFlags.InvokeMethod | BindingFlags.IgnoreReturn, null, ox_word, new object[1] { "Date" });
    type.InvokeMember("insert", BindingFlags.Default | BindingFlags.InvokeMethod | BindingFlags.IgnoreReturn, null, ox_word, new object[1] { "28 novembre 2014" });
    type.InvokeMember("ww7_editGoto", BindingFlags.Default | BindingFlags.InvokeMethod | BindingFlags.IgnoreReturn, null, ox_word, new object[1] { "Adresse" });
    type.InvokeMember("insert", BindingFlags.Default | BindingFlags.InvokeMethod | BindingFlags.IgnoreReturn, null, ox_word, new object[1] { "Nom" });
    type.InvokeMember("insertPara", BindingFlags.Default | BindingFlags.InvokeMethod | BindingFlags.IgnoreReturn, null, ox_word, new object[0]);
    type.InvokeMember("insert", BindingFlags.Default | BindingFlags.InvokeMethod | BindingFlags.IgnoreReturn, null, ox_word, new object[1] { "Adresse" });
    type.InvokeMember("insertPara", BindingFlags.Default | BindingFlags.InvokeMethod | BindingFlags.IgnoreReturn, null, ox_word, new object[0]);
    type.InvokeMember("insert", BindingFlags.Default | BindingFlags.InvokeMethod | BindingFlags.IgnoreReturn, null, ox_word, new object[1] { "Adresse 2" });
    type.InvokeMember("insertPara", BindingFlags.Default | BindingFlags.InvokeMethod | BindingFlags.IgnoreReturn, null, ox_word, new object[0]);
    type.InvokeMember("insert", BindingFlags.Default | BindingFlags.InvokeMethod | BindingFlags.IgnoreReturn, null, ox_word, new object[1] { "CodeP Ville" });
    type.InvokeMember("insertPara", BindingFlags.Default | BindingFlags.InvokeMethod | BindingFlags.IgnoreReturn, null, ox_word, new object[0]);
    type.InvokeMember("AppShow", BindingFlags.Default | BindingFlags.InvokeMethod | BindingFlags.IgnoreReturn, null, ox_word, new object[0]);
}
catch (Exception ex)
{
    MercatorUi.Dialogs.Stop(ex.Message + (ex.InnerException != null ? "\r\n" + ex.InnerException.Message : ""));
}
finally
{
    if (ox_word != null)
        System.Runtime.InteropServices.Marshal.ReleaseComObject(ox_word);
}