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

C# Discussion :

Insertion de formules dans Excel - Plantage systématique


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 95
    Points : 58
    Points
    58
    Par défaut Insertion de formules dans Excel - Plantage systématique
    Bonjour,

    Je dois modifier plusieurs milliers de fichiers Excel. Pour cela je dois insérer des formules.

    Bizarrement, ça fonctionne pour certaines et pas pour d'autres.

    Par exemple ceci fonctionne parfaitement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oSheet.Cells[47, 15] = "=M45";
    Ca aussi, mais j'ai dû changer le format de la cellule sinon je voyais la formule et pas son résultat.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Excel.Range range = oSheet.get_Range("L51","L55");
                range.NumberFormat = "0";
                oSheet.Cells[51, 12] = "=\"(\"&o47+1&\")\"";
                oSheet.Cells[53, 12] = "=\"(\"&o47+2&\")\"";
                oSheet.Cells[55, 12] = "=\"(\"&o47+3&\")\"";
    Par contre, ceci me donne ce message d'erreur : Exception de HRESULT : 0x800A03EC
    J'ai fait des recherches, des recherches et je ne trouve pas le problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                range = oSheet.get_Range("k51", "k55");
                range.Clear();
                range.NumberFormat = "dd/mm/yyyy";
                oSheet.Range["K51"].Value2 = "=DATE(ANNEE(M47)+2;MOIS(M47);JOUR(M47))";
                //oSheet.Cells[51, 11] = "=DATE(ANNEE(M47)+2;MOIS(M47);JOUR(M47))";
                oSheet.Cells[53, 11] = "=DATE(ANNEE(M47)+2;MOIS(M47);JOUR(M47))";
                oSheet.Cells[55, 11] = "=DATE(ANNEE(M47)+3;MOIS(M47);JOUR(M47))";
    Ca plante systématiquement sur la ligne (j'ai aussi testé la méthode .Formula ==> idem)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oSheet.Range["K51"].Value2 = "=DATE(ANNEE(M47)+2;MOIS(M47);JOUR(M47))";
    Ou bien sur celle que j'avais testée auparavant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //oSheet.Cells[51, 11] = "=DATE(ANNEE(M47)+2;MOIS(M47);JOUR(M47))";
    Merci pour l'aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 263
    Points
    34 263
    Par défaut
    Salut,

    la syntaxe la plus probable reste avec .Formula, mais surtout le fait de passer la formule en anglais, sinon tu dois avoir .FormulaLocal (issue du VBA)
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 95
    Points : 58
    Points
    58
    Par défaut
    Citation Envoyé par Jean-Philippe André Voir le message
    Salut,

    la syntaxe la plus probable reste avec .Formula, mais surtout le fait de passer la formule en anglais, sinon tu dois avoir .FormulaLocal (issue du VBA)
    Ouaiiis, ça marche avec .FormulaLocal.

    Merci beaucoup, je place le post en résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. erreur lors d'insertion de formule dans excel
    Par Tierisa dans le forum VBA Access
    Réponses: 2
    Dernier message: 14/09/2011, 08h46
  2. Insertion de formule dans Excel
    Par PIALOU dans le forum VBScript
    Réponses: 4
    Dernier message: 09/10/2007, 23h59
  3. [Excel] Insertion de formule dans ma feuille par macro (erreur400)
    Par EvaristeGaloisBis dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/02/2007, 10h27
  4. [VBA-E] insertion de formule dans cellule
    Par jeff37 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 31/05/2006, 13h53
  5. PRoblème de formule dans Excel
    Par jbidou88 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 11/05/2006, 09h35

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