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

Macros et VBA Excel Discussion :

Exécution automatique d'une formule Excel à partir de VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 16
    Points : 13
    Points
    13
    Par défaut Exécution automatique d'une formule Excel à partir de VBA
    Bonjour,

    A partir d'une macro VB, je souhaite insérer une formule dans une cellule ET calculer le contenu de celle-ci.
    Pour cela, j'utilise la ligne de commande suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("offsets").Cells(6, 10).FormulaR1C1 = "=SOMME(R2C18:R10C26)"
    Le résultat de l'exécution de cette ligne de commande est le suivant :
    je récupère bien la formule dans la cellule (6,10), mais le calcul de la somme n'est pas effectué et je vois apparaître #NOM? dans la cellule.
    Pour avoir le résultat de la formule, je suis obligé d'entrer dans la cellule et de valider.

    Comment faire pour que ce calcul s'exécute automatiquement (j'ai besoin de conserver la formule dans la cellule) ?

    NB : suite à ce que j'ai déjà pu lire sur les forums, j'ai déjà inséré dans mon code les lignes suivantes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Application.Calculation = xlCalculationAutomatic
    Application.Calculate
    NB2 : j'ai pu constater le même problème avec la fonction "RACINE"
    --> j'ai alors pu contourner le problème en tapant la formule (...)^0.5
    --> je n'ai toujours pas compris pourquoi ça fonctionne dans un cas et pas dans l'autre...

    Merci d'avance pour votre aide.

  2. #2
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Bonjour, as tu essayé EVALUATE ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    Merci pour ta réponse très rapide Godzestla.

    Je viens de tenter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("offsets").Cells(6, 10).FormulaR1C1 = "=SOMME(R2C18:R10C26)"
    Evaluate ("J6")
    Mais ça ne fonctionne pas mieux...

  4. #4
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Re,

    essaie ceci :

    Tu fais ton VBA comme existant.

    Quand ta cellule à #nom comme contenu, tu démarres l'enregistreur de macro.
    Tu modifies ta cellule via <F2> ce qui devrait te donner ce que tu veux.
    Tu arrête ta macro et regardes le conten mis par le code VBA de l'enregisteur.

    Je parie qu'il est différent (=SUM peut-être.).

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    Un grand merci, Godzestla.


    C'est exactement ça : j'ai bien SUM au lieu de SOMME.

    NB : c'est pareil pour RACINE --> je dois écrire SQRT dans mon script VBA

    Par contre, je ne comprends pas pourquoi il faut utiliser cette syntaxe puisque quand je la tape directement dans Excel, elle ne fonctionne pas.

    PS : très efficace ce forum, merci encore

  6. #6
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Par contre, je ne comprends pas pourquoi il faut utiliser cette syntaxe puisque quand je la tape directement dans Excel, elle ne fonctionne pas.
    parce que FormulaR1C1 utilise la codification standard Anglophone.

    Pour mettre tes commandes en Français, utilise alors FORMULAR1C1local à la place.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 16
    Points : 13
    Points
    13
    Par défaut

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

Discussions similaires

  1. [AC-2007] Ouverture d'une fichier Excel à partir de VBA (avec Excel 2007 au lieu de 2003)
    Par courriervirtuel dans le forum VBA Access
    Réponses: 0
    Dernier message: 06/10/2011, 18h19
  2. Prolongement automatique d'une formule sous Excel
    Par sebastien06 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 08/04/2009, 16h57
  3. [E-00] Transcrire une formule Excel en script VBA
    Par ritournelle dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 16/10/2008, 11h53
  4. Transformé une formule Excel en script VBA ?
    Par SFLEY dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 06/01/2007, 11h48
  5. Formatage de formule Excel à partir d'une macro
    Par keithanos dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/11/2006, 16h47

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