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 :

mettre une formule dans une cellule par macro [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Spécialiste en calculs mécaniques
    Inscrit en
    Janvier 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en calculs mécaniques
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2012
    Messages : 27
    Par défaut mettre une formule dans une cellule par macro
    bonjour

    je souhaite mettre une formule dans une cellule.
    lorsque je tape :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("F5").FormulaR1C1 = "=somme(H5:M5)"
    j'obtiens dans ma cellule F5 : #NOM?
    dans la cellule, la formule est devenue : =somme('H5':'M5')

    2 questions :
    - pourquoi la cellule n'est pas exactement celle demandée ?
    - quel est le bon code ?

    merci

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Il y a 4 méthodes pour insérer une formule dans une cellule via VBA
    • Range("A1").Formula --> écrire la formule, en utilisant les références du style A1, dans la langue de VBA (anglais) et elle s'adaptera à la langue de l'application
    • Range("A1").FormulaLocal --> écrire la formule, en utilisant les références de style A1, dans la langue de l'application, dans ton cas le français (va planter si on passe le fichier sur un Excel d'une autre langue)
    • Range("A1").FormulaR1C1 --> écrire la formule, en utilisant les références du style R1C1, dans la langue de VBA
    • Range("A1").FormulaR1C1Local --> écrire la formule, en utilisant les références du style R1C1, dans la langue de l'application

    Tu devrais trouver la méthode qui s'applique à ta formule
    .

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Février 2012
    Messages : 91
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("F5").Select
        ActiveCell.FormulaR1C1 = "=SUM(RC[2]:RC[7])"

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu
    bonjour

    il est vrai que traduire des fonctions en vba peut être un peu difficile parfois
    néanmoins si tu avais essayé l'enregistreur de macro tu aurais eu ce que
    silvestre09 t'a donné
    et ensuite en netoyant le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("F5").FormulaR1C1 = "=SUM(RC[2]:RC[7])"
    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre averti
    Homme Profil pro
    Spécialiste en calculs mécaniques
    Inscrit en
    Janvier 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en calculs mécaniques
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2012
    Messages : 27
    Par défaut
    bonjour et merci

    en effet, j’oublie souvent d'utiliser l'enregistreur de macro...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 27
    Par défaut Formule excel bug quand passe en macro
    j'ai sensiblement le meme problème même en utilisant l''enregistreur qui donne le code suivant:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Range("A1:E1").Select
        ActiveCell.FormulaR1C1 = _
            "=""Quantitées cumulées pour le service "" & RIGHT(LEFT(CELL(""filename""),LEN(CELL(""filename""))-50),(LEN(LEFT(CELL(""filename""),LEN(CELL(""filename""))-50)))-(FIND(""_"",LEFT(CELL(""filename""),LEN(CELL(""filename""))-50)))-5) & "" du "" & TEXT(DATE(LEFT(LEFT(RIGHT(CELL(""filename""),49),8),4),MID(LEFT(RIGHT(CELL(""filename""),49),8),5,2),RIGHT(LEFT(RIGHT(CELL(""" & _
            """),49),8),2)),""JJ/MM/AA"") &  "" à "" & TEXT(LEFT(RIGHT(CELL(""filename""),41),4),""00\:00"") &"" au "" & TEXT(DATE(LEFT(LEFT(RIGHT(CELL(""filename""),36),8),4),MID(LEFT(RIGHT(CELL(""filename""),36),8),5,2),RIGHT(LEFT(RIGHT(CELL(""filename""),36),8),2)),""JJ/MM/AA"") & "" à "" & TEXT(LEFT(RIGHT(CELL(""filename""),28),4),""00\:00"") & CHAR(10)&"" (calculé le "" & T" & _
            "LEFT(LEFT(RIGHT(CELL(""filename""),23),8),4),MID(LEFT(RIGHT(CELL(""filename""),23),8),5,2),RIGHT(LEFT(RIGHT(CELL(""filename""),23),8),2)),""JJ/MM/AA"") & "" à "" & TEXT(LEFT(RIGHT(CELL(""filename""),15),4),""00\:00"")&"")"""
        Range("Tableau1[[#Headers],[Loc.]]").Select
    Cette formule récupère des données dans le noms du fichier.
    Merci

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

Discussions similaires

  1. [Toutes versions] Imbriquer une formule dans une formule à l'aide de l'outil Insertion de fonction
    Par Philippe Tulliez dans le forum Contribuez
    Réponses: 0
    Dernier message: 27/08/2014, 11h21
  2. Réponses: 2
    Dernier message: 23/03/2014, 12h05
  3. [XL-2010] Formule : attribuer une formule dans une cellule
    Par popi33370 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/03/2014, 18h06
  4. mettre un swf dans une iframe dans une page html
    Par petitevero dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 16/04/2011, 02h58
  5. Réponses: 3
    Dernier message: 29/01/2008, 12h08

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