Bienvenue sur Labo-dotnet Identification | Enregistrement | Faq

Office

Démarré par Anonymous à 12-20-2006 17:44. Le sujet a 15 réponse(s).

Print Search
Sort Posts:    
   12-20-2006, 17:44
Anonymous
[C#]Problème pour étendre les plages d'un document Word
Thread Status: Reply Quote Edit
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
Adresse IP : Connecté    
   12-20-2006, 18:13
okavango n'est pas en ligne. Dernière activité : 29/09/2008 16:44:29 okavango


Rejoint : 06-23-2006
Messages : 408
Smile [:)] Re : [C#]Problème pour étendre les plages d'un document Word
Reply Quote
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



Adresse IP : Connecté   Rapport 
   12-20-2006, 19:56
Anonymous
Re : [C#]Problème pour étendre les plages d'un document Word
Reply Quote Edit
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


Adresse IP : Connecté    
   12-20-2006, 20:15
okavango n'est pas en ligne. Dernière activité : 29/09/2008 16:44:29 okavango


Rejoint : 06-23-2006
Messages : 408
Hmm [^o)] Re : [C#]Problème pour étendre les plages d'un document Word
Reply Quote
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


Adresse IP : Connecté   Rapport 
   12-20-2006, 20:21
Anonymous
Re : [C#]Problème pour étendre les plages d'un document Word
Reply Quote Edit
Mon doc word est vide normalment puisque je le crée juste au-dessu.

Adresse IP : Connecté    
   12-20-2006, 20:24
okavango n'est pas en ligne. Dernière activité : 29/09/2008 16:44:29 okavango


Rejoint : 06-23-2006
Messages : 408
Smile [:)] Re : [C#]Problème pour étendre les plages d'un document Word
Reply Quote
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



Adresse IP : Connecté   Rapport 
   12-20-2006, 20:38
Anonymous
Re : [C#]Problème pour étendre les plages d'un document Word
Reply Quote Edit
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.

Adresse IP : Connecté    
   12-20-2006, 20:58
okavango n'est pas en ligne. Dernière activité : 29/09/2008 16:44:29 okavango


Rejoint : 06-23-2006
Messages : 408
Hmm [^o)] Re : [C#]Problème pour étendre les plages d'un document Word
Reply Quote
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

Adresse IP : Connecté   Rapport 
   12-21-2006, 15:11
Anonymous
Re : [C#]Problème pour étendre les plages d'un document Word
Reply Quote Edit
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

Adresse IP : Connecté    
   12-21-2006, 18:50
okavango n'est pas en ligne. Dernière activité : 29/09/2008 16:44:29 okavango


Rejoint : 06-23-2006
Messages : 408
Re : [C#]Problème pour étendre les plages d'un document Word
Reply Quote
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



Adresse IP : Connecté   Rapport 
  Page 1 sur 2 [16 au total] 1 2 »
Labo-dotnet » Programmation .... » Office » [C#]Problème pour étendre les plages d'un document Word

Sponsorisé par Community Server


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