IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Insérer des formules dans un fichier Excel


Sujet :

Scripts/Batch

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 44
    Points : 25
    Points
    25
    Par défaut Insérer des formules dans un fichier Excel
    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 …


    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()
    je suis au début de mes soucis car je dois ensuite faire en sorte que mes formules s'incrémentent

    =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

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 44
    Points : 25
    Points
    25
    Par défaut
    petite précision la formule suivant fonctionne :
    #$excel.cells.item(2,3).Formula ="=E4"


    du fait ce n'est pas le signe "=" le pb …

    Je seche encore plus

Discussions similaires

  1. [AC-2007] Insérer des données d'un fichier Excel dans et depuis Access
    Par Blado_sap dans le forum VBA Access
    Réponses: 9
    Dernier message: 25/01/2015, 18h57
  2. [VBA-E] Lire des valeurs dans un fichier excel
    Par nicobox dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 11/05/2006, 15h40
  3. [Excel] Insérer du texte dans un fichier Excel
    Par Longrais dans le forum Langage
    Réponses: 3
    Dernier message: 15/02/2006, 17h46
  4. [VBA] insérer une ligne dans un fichier excel
    Par cokinoumasterflash dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/07/2005, 18h52
  5. Mettre des donnees dans un fichier Excel
    Par Mouawad dans le forum C++Builder
    Réponses: 6
    Dernier message: 07/10/2004, 14h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo