Question guide de prod comment remplir un doc depuis wmi

Plus d'informations
il y a 14 ans 4 mois #1480 par Lemaire Patrice
Dan écrit:

...mettez deux specialistes dans le meme post et ils recodent powershell!!!:laugh: :

Arnaud et Janel sont les Spécialistes hein ...
Moi je suis que débutant ^^

Dan écrit:

...il y a t'il des outils d'aide a l'optimisation ... permettant de favoriser une methode plutot qu'une autre?

Les pros le diront, mais tu peut sans doute essayer :
[code:1]Measure-Command {./MonScript.ps1}[/code:1]
En changeant des choses pour comparer ...

Ceci dit, tu utilise les classes Office, et là ben ... faut pas rever, tu met en branle un monstre ^^, et se paye cash.

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

Plus d'informations
il y a 14 ans 4 mois #1484 par Arnaud Petitjean

...il y a t'il des outils d'aide a l'optimisation ... permettant de favoriser une methode plutot qu'une autre?


Eh eh, et bé non pas à ma connaissance ! La seule chose qui puisse t'aider c'est l'expérience ;) ; la tienne ou celle des autres.

Les pros le diront, mais tu peut sans doute essayer :

Measure-Command {./MonScript.ps1}


Oui c'est très juste Spirit ! Allez +1 de Karma pour toi ;)
Ca sert à rien (le Karma) mais c'est juste pour le fun.

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 ou d'un conseil ?

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

Plus d'informations
il y a 14 ans 3 mois #1577 par Laurent Dardenne
Salut,
Dan écrit:

...
1 / qqun sait il comment creer un tableau a un endroit precis d'un document word par exemple juste en dessous du paragraphe 2.4

Tu peux utiliser un signet, qq chose comme :
[code:1]Bookmarks.Item(\"MonSignet\"«»)[/code:1]
Dan écrit:

...
ou comment faire une recherche sur un mot dans tous le document pour le remplacer par un autre mot

Essai la méthode Find sur un objet range :
[code:1]
// code VBA, issu de la doc Word
Set myRange = ActiveDocument.Content
myRange.Find.Execute FindText:=\"hi\", ReplaceWith:=\"hello\", _
Replace:=wdReplaceAll[/code:1]
Je te laisse l'adapter.

Quant à une possible optimisation, à vérifier je n'ai pas testé, essaie de manipuler des variables intermédiaires sur ce type d'appel :
[code:1]
$document.content.tables.item(3)
[/code:1]
Comme tu utilises 1)un script interprété vers du code managé .NET 2)compilé en Win32 qui lui même 3)appelle des interfaces COM et enfin fait le chemin inverse, au sein d'une boucle cela peut, je pense, améliorer sensiblement le temps d'exécution.

Arnaud écrit:

...
car il y a des fois certaines incompatibilités entre Word 2003 et Word 2007 au niveau de PowerShell.

Peut-on savoir lesquelles ?

Tutoriels PowerShell

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

Plus d'informations
il y a 14 ans 3 mois #1580 par Arnaud Petitjean

...
car il y a des fois certaines incompatibilités entre Word 2003 et Word 2007 au niveau de PowerShell.


Peut-on savoir lesquelles ?


Il y a quelques différences d'implémentation des objets COM Office entre ces deux versions. Je ne me souviens plus exactement desquelles mais je me rappelle avoir été confronté à ce problème. Si je retrouve le contexte, je mettrais à jour ce post.

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 ou d'un conseil ?

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

Plus d'informations
il y a 14 ans 3 mois #1595 par Laurent Dardenne
Arnaud écrit:

Il y a quelques différences d'implémentation des objets COM Office entre ces deux versions.

Si j'ai bien compris, c'est normal puisque le contrat d'une interface (objet COM) est immuable, c'est un des principes de base de la technologie COM.
C'est à dire qu'un client appelant une méthode nommée M1 sur un logiciel de version V1 continuera de fonctionner sur la version V2 du même produit.

Dans ce cas là il vaut mieux baser son code sur la librairie de type (TLB ) de la version la plus ancienne qu'on compte supporter et non pas utiliser une méthode surchargée spécifique à la derniére version, du logiciel, qui comporte le plus souvent des paramètres supplémentaires.<br><br>Message édité par: BatchMan, à: 1/02/08 12:52

Tutoriels PowerShell

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

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