Question
PowerShell et Excel (FormulaR1C1)
- Besançon Ludovic
- Auteur du sujet
- Hors Ligne
- Membre senior
-
- Messages : 44
- Remerciements reçus 0
J'utilisais pas mal Excel et vba pour creer des classeurs.
J'essaie de le faire directement à partir de powershell.
Dans ma macro excel j'avais :
[code:1]myWKS.Cells(1,3).FormulaR1C1 = \"=RC[-2]+RC[-1]\"[/code:1]
Dans powershell j'ai mis :
[code:1]$xls = New-Object -comobject Excel.Application
$xls.Visible = $True
$myWB = $xls.Workbooks.Add()
$myWS = $myWB.Worksheets.Item(1)
$myWS.Cells.Item(1,1) = '1'
$myWS.Cells.Item(1,2) = '2'
$myWS.Cells.Item(1,3).FormulaR1C1 = '=RC[-1]+RC[-2]'[/code:1]
J'obtiens une erreur :
Si je n'utilise pas la propriété FormulaR1C1 j'obtiens l'erreur :Exception setting \"FormulaR1C1\": \"Exception from HRESULT: 0x800A03EC\"
At C:\Outils\Exploit\Bin\Excel-Test.ps1:8 char:23
+ $myWS.Cells.Item(1,3). <<<< FormulaR1C1 = '=RC[-1]+RC[-2]'
+ CategoryInfo : InvalidOperation: ( : ) [], RuntimeException
+ FullyQualifiedErrorId : PropertyAssignmentException
Exception setting \"Item\": \"Exception from HRESULT: 0x800A03EC\"
At C:\Outils\Exploit\Bin\Excel-Test.ps1:8 char:17
+ $myWS.Cells.Item <<<< (1,3) = '=RC[-1]+RC[-2]'
+ CategoryInfo : NotSpecified: ( : ) [], SetValueInvocationException
+ FullyQualifiedErrorId : CatchFromBaseAdapterParameterizedPropertySetValueTI
J'ai un moment suspecté un problème de Fançais/Anglais mais j'ai remplacé le R de Row par le L de Ligne mais rien n'y fait !
Merci de votre aide.
Ludovic.
Message édité par: Arnaud, à: 22/12/09 10:52
Message édité par: Arnaud, à: 22/12/09 10:53<br><br>Message édité par: Arnaud, à: 22/12/09 10:54
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Si on saisis manuellement ta formule dans XL, on déclenche une erreur. Même si dans les options la notation de style R1C1 est activé. Avec une autre formule du type SQR il n'y a pas d'erreur.
Peut être que tes références sont erronées dans ce contexte ?
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Besançon Ludovic
- Auteur du sujet
- Hors Ligne
- Membre senior
-
- Messages : 44
- Remerciements reçus 0
C'est bien un prolème d'Anglais/Français.
La ligne doit être :
$myWS.Cells.Item(1,3).FormulaR1C1 = '=LC(-1)+RC(-2)'
En fait j'avais utilisé l'enregistreur de macro pour \"connaître\" ma formule.
Avec vba il faut parler anglais !
Avec powershell visiblement il faut parler en français.
A moins que cela ne cange avec les version d'Office ...
Je suis en Office 2003.
Merci de ton aide.
Ludovic.
PS : Quel est le nom de la propriété à changer pour passer de A1 à L1C1 ?
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Application.ReferenceStyle je crois.Quel est le nom de la propriété à changer pour passer de A1 à L1C1 ?
Les valeurs de l'énumération XlReferenceStyle
[code:1]$xlA1 = 1
$xlR1C1 = 0xFFFFEFCAL # L pour type Long [/code:1]<br><br>Message édité par: Laurent Dardenne, à: 21/12/09 13:14
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- PowerShell et Excel (FormulaR1C1)