Question modifier un tableau sur word

Plus d'informations
il y a 18 ans 5 mois #1306 par daniel soares
Hello
je tourne en rond sur les objets word
j'ai un document existant dans lequel je sais selectionner un emplacement par exemple la cellule d'un tableau dont je veux modifier le texte
[code:1]
$document.Content.Tables.Item(3).Cell(2,2).Select()
[/code:1]

mais comment utiliser la methode $document.content.text.
pour inserer ou remplacer le texte existant?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 18 ans 5 mois #1308 par Arnaud Petitjean
Bonjour Dan,

Pourrais tu poster l'intégralité de ton script stp ? Car en effet c'est pas le genre de choses que l'on fait tous les jours avec PowerShell. ;)

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 18 ans 5 mois #1310 par daniel soares
ok mais bon il n'est pas très avancé :blush:
il s'utilise avec le document exemple.dot en copie
le pb est que je ne dois pas toucher au dot d'origine ce qui m'oblige a m'adapter au document

[code:1]
$word= New-Object -ComObject word.application
$word.visible =$true
$document = $word.documents.open(\"$home\exemple.dot\"«»)
$document.saveas([ref]\"$home\gptemp.doc\"«»)
$document.Content.Tables.Item(2).Cell(2,2).Select()
[/code:1]
avec ce code j'ouvre le dot je l'enregistre sous doc et je selectionne la premiere case a modifier

mais voila
$document.Content.Tables.Item(2).Cell(2,2)
n'offre pas la possibilité de modifier le texte dans la cellule (enfin je crois pas)
et la commande pour modifier le text
$document.content.text fait reference a tout le document et non pas une partie

je bloque sur ce qui est la base d'un document word : entrer du texte! :S

(j'ai mis en copie le document final car le dot ne passe pas)

La pièce jointe gptemp.doc est absente ou indisponible

<br><br>Message édité par: Dan, à: 30/11/07 12:58
Pièces jointes :

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 18 ans 5 mois #1318 par Jacques Barathon
Il faut passer par la propriété Range de la cellule pour accéder à son texte:

[code:1]
$doc.content.tables.item(2).cell(2,2).range.text = \&quot;MONDOMAINE\&quot;
$domaine = $doc.content.tables.item(2).cell(2,2).range.text
$doc.content.tables.item(2).cell(1,2).range.text = \&quot;MONSERVEUR\&quot;
$doc.content.tables.item(2).cell(1,2).range.insertbefore(\&quot;$domaine\\&quot;«»)
[/code:1]
Tu peux également insérer du texte après le texte existant avec InsertAfter(), ou effacer le contenu existant avec Delete().

Pour plus d'infos sur les propriétés et méthodes de l'objet:

[code:1]$doc.content.tables.item(2).cell(1,2).range | get-member[/code:1]
Et pour une documentation sur la programmation de Word (parfois alambiquée mais malgré tout assez complète):

msdn2.microsoft.com/en-us/library/bb872406.aspx

Janel

Janel<br><br>Message édité par: janel, à: 3/12/07 19:39

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 18 ans 5 mois #1322 par daniel soares
merci Janel!!
tout devient parfaitement limpide :laugh:

Dan

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.041 secondes
Propulsé par Kunena