[C#]Problème pour étendre les plages d'un document Word

Office

[C#]Problème pour étendre les plages d'un document Word


Anonymous 12-20-2006, 17:44
Bonjour,

Je veux remplir un document word, avec l'objet Range, mais j'arrive pas a étendre les plages et déplacer mes paragraphes, dans le code suivant

[CODE]
object start = 0;
object end = 7;
Word.Range Para = FactureDoc.Range(ref start, ref end);
object unit = Word.WdUnits.wdCharacter;
object count = 7;
Para.MoveStart(ref unit, ref count);
[/CODE]

j'ai une erreur dans la ligne "Word.Range Para = FactureDoc.Range(ref start, ref end);" me disant "Valeur en dehors des limites".

ca marche seulement quand je met la valeur de l'objet end a "0".

Merci pour votre aide

Re : [C#]Problème pour étendre les plages d'un document Word


okavango 12-20-2006, 18:13
Salut !
Pour insérer du texte (donc même chose pour le déplacer ? ) on procède comme suit :
// C#
string str = "Ici ton texte ... ";
object start = 0;
object end = 0;
Word.Range rng = <tonDocument>.Range(
ref start, ref end);
rng.Text = str;
rng.Select();
Il n'y a donc pas d'erreur dans ta ligne car comme le montre le code précédent, on met start et end à zéro pour insérer du texte.
Pour l'extension des plages, il manque juste ceci peut-être non ?
// C#
object start = 0;
object end = 7;
Word.Range rng = <tonDocument>.Range(
ref start, ref end);

object unit = Word.WdUnits.wdCharacter;
object count = 7;

// déplace alors la position de début de sept caractères
rng.MoveStart(
ref unit, ref count);
// déplace la position de fin de sept caractères
rng.MoveEnd(
ref unit, ref count);
Voila
J'espère t'avoir aider !

Okavango


Re : [C#]Problème pour étendre les plages d'un document Word


Anonymous 12-20-2006, 19:56
Salut

j'ai essayé le meme code, mais j'ai toujours la meme erreur avec le message  "Valeur en dehors des limites" voila mon code

// c#
             Word._Application aWord = new Word.Application();
            
object start = 0;
            
object end = 7;
            
object templateName = @"c:\Modele";
             Word._Document FactureDoc = aWord.Documents.Add(ref templateName, ref Missing, ref Missing, ref Missing);
             Word.Range Para = FactureDoc.Range(ref start, ref end);
// c'est ici l'erreur
             object unit = Microsoft.Office.Interop.Word.WdUnits.wdCharacter;
             object count = 7;
             Para.MoveStart(ref unit, ref count);
             Para.MoveEnd(ref unit, ref count);
             Para.Text = "test";
             Para.Font.Bold = 1;
             Para.Font.Size = 12;
             Para.Font.NameAscii = "verdana";
             Para.InsertParagraphAfter();

Merci pour ton aide

Re : [C#]Problème pour étendre les plages d'un document Word


okavango 12-20-2006, 20:15
Est-ce que ton doc word contient plus de sept caractères ? Smile [:)]
Autrement l'erreur, selon moi, n'a pas lieu d'être dans ce cas là !

Okavango

Re : [C#]Problème pour étendre les plages d'un document Word


Anonymous 12-20-2006, 20:21
Mon doc word est vide normalment puisque je le crée juste au-dessu.

Re : [C#]Problème pour étendre les plages d'un document Word


okavango 12-20-2006, 20:24
Voilà pourquoi ça ne marche que si tu mets end=0 ! ton doc est vide ! Essaies de le remplir (évidemment avec plus de 7 caract.) par codage en dur (ou manuellement) et normalement ça doit marcher !!!

Okavango


Re : [C#]Problème pour étendre les plages d'un document Word


Anonymous 12-20-2006, 20:38
ah ok, mais ya pas moyen de déplacer du text direct dés qu'on l'ajoute?
j'ai tester se code

// C#
                object start = 0;
                object end = 0;
                object templateName = @"c:\Modele";
                Word._Document FactureDoc = aWord.Documents.Add(ref Missing, ref Missing, ref Missing, ref Missing);
                Word.Range Para = FactureDoc.Range(ref start, ref end);
                Para.Text = "numero1";
                Para.Font.Bold = 1;
                Para.Font.Size = 12;
                Para.Font.NameAscii = "verdana";
                Para.InsertParagraphAfter();
                start = 0;
                end = 7;
                Word.Range rng = FactureDoc.Range(ref start, ref end);
                rng.Text = "numero2";
                rng.Font.Bold = 0;
                rng.Font.Size = 12;
                rng.Font.NameAscii = "verdana";
                object unit = Microsoft.Office.Interop.Word.WdUnits.wdCharacter;
                object count = 7;
                rng.MoveStart(ref unit, ref count);
                rng.MoveEnd(ref unit, ref count);  

j'ai que le 2eme text qui est affiché mais il est toujours au debut de la feuille, il c'est pas déplacer.

Re : [C#]Problème pour étendre les plages d'un document Word


okavango 12-20-2006, 20:58
Essaies avec un texte très très long (env. 80 caract. par exemple) et non avec un texte de sept caractères pour voir ce que ça donne !
Et peux tu me donner le résultat visuel que tu obtiens merci !

Okavango

Re : [C#]Problème pour étendre les plages d'un document Word


Anonymous 12-21-2006, 15:11
Ce que je veux, c'est faire plusieur paragraphes, et les déplacer dés que je les déclare, pour a la fin avoir un doc qui ressemble a une facture.
y a pas un autre moyen de les deplacer sans remplir le doc avant?

Merci pour ton aide

Re : [C#]Problème pour étendre les plages d'un document Word


okavango 12-21-2006, 18:50
Salut !
Ca fait quoi si tu ne fais qu'un MoveEnd() seulement, car on relisant ton code, je constate que tu fais un MoveStart() puis un MoveEnd() de 7 caract. Ce qui reviens à "ne pas se déplacer du tout" puisque tu recules, ensuite, tu avances de sept caract. ? non ?
Essaie pour voir juste par curiosité ce que ça fait ! La solution n'est peut-être pas là mais c'est juste une intuition, je ne sais si elle est bonne ou pas ! Sinon, on cherche un autre moyen !

Okavango


 Page 1 sur 2 [16 au total] 1 2 »

Sponsorisé par Community Server


Conditions d’utilisation et Copyright
Respect de la vie privée