bonjour,
Afin de faire des comparatifs de fichiers XML j'utilise plusieurs transformations.
A la fin de mes traitements j'ai sous forme CSV l'ensemble des valeurs et 3 paramètres dans une table et ce pour 9 fichiers.
De ce fait je met le fichier CSV au format XLXS.
et pour faire un comparatif rapide j'ai 4 formules à appliquer dans les colonnes A : D
=SI(NB.SI(X2:AF2;DECALER(W2;0;EQUIV(RECHERCHE(2,1;1/(X2:AF2<>"");X2:AF2);X2:AF2);1;1))=9-NB.VIDE(X2:AF2)=FAUX;"DIFF";"")
=SI(NB.SI(F2:N2;DECALER(E2;0;EQUIV(RECHERCHE(2,1;1/(F2:N2<>"");F2:N2);F2:N2);1;1))=9-NB.VIDE(F2:N2)=FAUX;"DIFF";"")
=SI(NB.SI(O2:W2;MOYENNE(O2:W2))=0;"DIFF";NB.SI(O2:W2;MOYENNE(O2:W2)))
=SI(NB.VIDE(F2:AF2)=0;"";"PARTIEL")
et la ca se complique car je n'arrive pas a insérer de formule …
j'arrive a écrire dans une cellule, mais dès qu'il y a le signe "=" j'ai le message :
Exception de HRESULT : 0x800A03EC
Au caractère C:\data\convertCSVtoXLSX.ps1:32 : 1
+ $excel.cells.item(2,3) ="=NB.SI(E83:H83;1)"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (: ) [], COMException
+ FullyQualifiedErrorId : System.Runtime.InteropServices.COMException
j'ai essayé les ^,",',\ devant mon signe egal et rien a faire …
je suis au début de mes soucis car je dois ensuite faire en sorte que mes formules s'incrémentent
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 #Define locations and delimiter $varCheminRepertoireScript = [System.IO.Path]::GetDirectoryName($MyInvocation.MyCommand.Definition) $csv = "$varCheminRepertoireScript\analyse.csv" #Location of the source file $xlsx = "$varCheminRepertoireScript\analyse2.xlsx" #Desired location of output $delimiter = ";" #Specify the delimiter used in the file # Create a new Excel workbook with one empty sheet $excel = New-Object -ComObject excel.application $workbook = $excel.Workbooks.Add(1) $worksheet = $workbook.worksheets.Item(1) # Build the QueryTables.Add command and reformat the data $TxtConnector = ("TEXT;" + $csv) $Connector = $worksheet.QueryTables.add($TxtConnector,$worksheet.Range("A1")) $query = $worksheet.QueryTables.item($Connector.name) $query.TextFileOtherDelimiter = $delimiter $query.TextFileParseType = 1 $query.TextFileColumnDataTypes = ,1 * $worksheet.Cells.Columns.Count $query.AdjustColumnWidth = 1 # Execute & delete the import query $query.Refresh() $query.Delete() #code OK $excel.cells.item(2,2) = "site" #ERREURS $excel.cells.item(2,3) ="=NB.SI(E83:H83;1)" #ERREURS $excel.cells.item(2,3).Formula ="=NB.SI(E83:H83;1)" # Save & close the Workbook as XLSX. $Workbook.SaveAs($xlsx,51) $excel.Quit()
=SI(NB.SI(X2:AF2;DECALER(W2;0;EQUIV(RECHERCHE(2,1;1/(X2:AF2<>"");X2:AF2);X2:AF2);1;1))=9-NB.VIDE(X2:AF2)=FAUX;"DIFF";"")
et ce pour le nombre de ligne de mon fichier excel ..
d'avance merci pour votre aide éclairée
Partager