begin process at 2012 02 10 02:22:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

ActiveX / COM

 > 

Problème Presse Papier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème Presse Papier

jeudi 22 mai 2008 à 11:42:31 | Problème Presse Papier

gilletcsteph

Membre Club
Bonjour,

J'utilise pour les besoins d'un projet les composants COM Office.interop.word pour générer des documents Word. Ce n'est pas l'idéal pour faire cela, mais c'est une contrainte donc je fais avec.

Je rencontre parfois un problème avec un copier-coller. C'est un code que je n'ai pas développé et que j'essaye d'améliorer. Donc j'ai besoin de conseil.

Le code permet de récupérer dans un modèle, de copier son contenu, de le coller a la suite d'un document principal, et par la suite de remplir des signets.
Voici le code :

_Document

nvDoc = CreateDocFromTemplate("modele.dot");
object rngstart = nvDoc.Tables[1].Range.Start;
object rngstop = nvDoc.Tables[16].Range.End;
nvDoc.Range(
ref rngstart, ref rngstop).Copy();
Range rng = AddLineFeed(nvDoc.Tables[nbTable + maxTables].Range);
Range rng1 = AddLineFeed(rng);
rng1.Paste();

--

protected
_Document CreateDocFromTemplate(String templatePath)
{
// Affectation du template
object templateName = templatePath;
// Création du document Word
object missing = System.Reflection.Missing.Value;
return msWord.Documents.Add(ref templateName, ref missing, ref missing, ref missing);
}

---

protected
Range AddLineFeed(Range range)
{
      return EndOfRange(AddParagraph(range).Range);
}

---

protected

Range EndOfRange(Range rng)
{
// Déplacement du range à la fin du range spécifié en paratmètre
object unit = WdUnits.wdCharacter;
object count = rng.End - rng.Start;
rng.MoveStart(
ref unit, ref count);
return rng;
}

Et ce code fonctionne, mais parfois j'ai ce message d'erreur qui parvient. Et quand ça provient, le traitement est arrêté forcément, donc pas de document word.

J'ai pensé à un manque de mémoire pour le contenu copier, mais je suis pas sur.

Exception : System.Runtime.InteropServices.COMException (0x800A11FD): Cette méthode ou propriété n'est pas disponible car le Presse-papiers est vide ou non valide.
   à Microsoft.Office.Interop.Word.Range.Paste()

Avez vous une idée pourquoi j'ai cette erreur ?

--
Steph
jeudi 22 mai 2008 à 11:49:36 | Re : Problème Presse Papier

leprov

Le message d'erreur me semble pourtant explicite : tu fais paste alors que tu n'as pas fait copy avant...


jeudi 22 mai 2008 à 11:53:52 | Re : Problème Presse Papier

leprov

je corrige (jai pas été très explicite et constructif) :
Tu n'as pas fait de copier valide.

si nvDoc.Tables[nbTable + maxTables].Range vaut null que va-t-il se passer? (a mon avis ya des chances que le pb vienne de la)

jeudi 22 mai 2008 à 14:41:47 | Re : Problème Presse Papier

gilletcsteph

Membre Club
Merci de ta réponse,

si nvDoc.Tables[nbTable + maxTables].Range n'est pas null. Mais la propriété CanPaste lève une NotImplementedException.

je vois pas du tout la...

--
Steph
jeudi 22 mai 2008 à 16:08:09 | Re : Problème Presse Papier

leprov

alors il vaut pas null, mais est ce que ca vaudrait pas "missing" ?


jeudi 22 mai 2008 à 18:18:52 | Re : Problème Presse Papier

gilletcsteph

Membre Club
Non toujours pas...

ce qui est encore plus bizarre, c'est lorsque je redémarre IIS, ça fonctionne une fois uniquement. Donc je pensais chercher un objet qui utilise la mémoire, mais en vain...

--
Steph
MCSD .Net


Cette discussion est classée dans : document, ref, range, rng, nvdoc


Répondre à ce message

Sujets en rapport avec ce message

Faire un tableau dans Word en C# [ par TmDsbsBs ] Bonjour,je souhaite créer un tableau dans un document Word. Ce tableau doit etre rempli avec les données de ma base.J'ai trouvé quelques sources, mais erreur de code [ par cococo84 ] g une application winform.je souhaite automatiser un fichier word préexistant en y insérant des valeurs de mon application. voici le code que g mi: / optimiser automatisation word [ par cococo84 ] 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 Word [ par abderrr ] BonjourJ'ai fait une automatisation de Word, j'arrive a crée le fichier, et ecrire dedans des paragraphesavec se bout de code :Microsoft.Office.Intero pilotage word / automatisme word => HLP [ par enigmatiqk ] bonjour, désolé du titre, mais je ne voyais pas comment résumé rapidement mon problème.situation: c#.net sur VS 2003, et word 2000.j'arrive a ouvrir u Word printout range [ par fredspv ] Bonjour,J'essaie d'imprimer un fichier de fusion avec la fonction PRINTOUT:object start = "2";<font col mettre du Text dans les signets [ par kowalska ] Bonjour, Depuis hier j'ai un soucis pour ecrire dans mes signé. J'ai essayé pas mal de script pour le faire me je bloque ca ne marche pas. Je ne s Automation Word Windows Server 2003 [ par 2bo ] Bonjour, je développe une application qui produit des documents word et excel. Lorsque j'essaye de créer mes documents excel je n'ai aucun problème, Publipostage [ par luudii34 ] Bonjour, J'aimerai bien faire un publipostage sous Word, j'ai donc utilisé plusieurs tutoriaux pour faire mon code, mais j'ai un souci au niveau de mo Alignement d'un texte word en C# [ par smileyoyo ] Bonjour à tous. Je suis en train de développer une application qui utilise WORD. Jusque la tout se passe bien. Cependant j'aimerai pouvoir centrer le


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,040 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales