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

API, COM et SDKs Delphi Discussion :

[D7-EXCEL2000] Formule dans cellule Excel qui ne se calcule pas


Sujet :

API, COM et SDKs Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 6
    Points : 4
    Points
    4
    Par défaut [D7-EXCEL2000] Formule dans cellule Excel qui ne se calcule pas
    Bonjour tout le monde!

    Je pilote Excel via Delphi.
    Je crée un nouveau document .xls, et j'insère des données provenant d'une base de données à l'intérieur.
    Je n'utilise pas de composant Excel, pas de TLB, je ne manipule que des variants.
    Par exemple pour créer/lancer l'instance de Excel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      try
        vMSExcel := GetActiveOleObject('Excel.Application');
      except
        vMSExcel := CreateOleObject('Excel.Application');
      end;
    Mais là n'est pas le problème.

    A un moment donné, je dois insérer dans une cellule du document Excel (toujours via Delphi) une formule de sous-total:
    =SOMME(A1:B1)

    Mon code est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaFeuilleXL.Cells[j,i].Formula := '=SOMME(A1:B1)';
    Avec i et j des entiers (les coordonnées de ma cellule)

    Cette formule est bien insérée dans la cellule adéquate.
    Le document est ensuite sauvegardé, toujours via Delphi. Puis Excel est fermé.

    PROBLEME:
    Quand j'ouvre mon document à partir de Excel, toutes mes données sont bien insérées, mais j'ai un problème pour la formule:
    La cellule qui comporte la formule affiche une erreur:

    #NOM?
    J'ai regardé dansa l'aide, et tout ce que j'ai pu trouver, c'est que l'erreur est la n° 2029, et s'appelle xlErrName .

    Pourtant, si je clique sur la cellule, j'ai bien la formule qui s'affiche en haut dans la barre de formule. Et si je clique dans la barre, et que j'appuie sur l'icone de coche verte pour la valider, le calcul se fait à ce moment là!!!
    Alors pourquoi est-ce que ce calcul ne se fait pas automatiquement, et que je suis obligé de le valider???
    J'ai mêmle essayer de provoquer le calcul de la feuille Excel en ajoutant dans mes instructions un truc comme:

    Mais çe ne fait rien de plus...


    Merci d'avance pour tous ceux qui pourraient me trouver une piste, ou une solution!

    A+

  2. #2
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    A vérifier, mais il me semble qu'il faut utiliser le nom anglais des fonctions lorsque l'on passe par le serveur automation. Cela permet d'écrire du code valable avec toutes les versions (langues) d'Excel.
    Fais un test avec SUM.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Bonnsoir Pierre!


    Humm.. malheureusement là j ene uis plus au boulot, mais:
    - C'est vrai tu as raison, il vaut mieux mettre SUM(). Déjà, les passages de méthodes VBA en anglais sont supportées aussi bien dans les versions d'Office anglaises que localisées, alors que celles en langue localisée ne le sont pas par la version anglaise, mais également peut-être que le fait de les utiliser par "programmation" OLE implique qu'il faille le faire en anglais...
    - Je m'étais dit la même chose, et j'avais bien mis SUM() à un moment donné, mais ça provoquait exactement le même problème si mes souvenirs sont bons. Mais comme j'essayais aussi avec d'autres possibilités, il est possible que SUM marche bien, mais que ça ait été masqué à cause d'un autre problème.
    Je sais pas si je m'explique bien LOL

    Bon de tte façon je réessaierai lundi matin. Merci à toi
    Mais par contre, si d'autres personnes en attendant, ont d'autres pistes, on sait jamais, dites-le moi ^^

    A+

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Juste pour dire merci à Pierre, car en essayant de nouverau avec SUM(), ça marche! ^_^

    Donc, merci encore!

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

Discussions similaires

  1. [Débutant] formule dans cellule Excel
    Par cristos dans le forum ASP.NET
    Réponses: 0
    Dernier message: 16/11/2011, 13h36
  2. formule dans cellule feuille excel
    Par gds35 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/02/2011, 12h59
  3. concaténation en vba dans une formule de cellule Excel
    Par kernel57 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/12/2005, 22h58
  4. appliquer une formule à +sieurs cellules excel
    Par ramsesthebest dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/09/2005, 20h36
  5. Création liste dans cellules Excel en VBA
    Par yazoo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/04/2005, 14h46

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