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 :

macro excel : affectation d'une formule à une cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 10
    Par défaut macro excel : affectation d'une formule à une cellule
    Bonjour,

    Je souhaiterai, à l'aide d'une macro, affecter une formule à ma cellule, j'utilise le code (tout simple) suivant :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    colonne = 16
     
    For i = 1 To 5
     
        If Cells(i, colonne) <> "" Then
            Cells(i, colonne).Value = "PDD"
        End If
     
    Next
    à la place de "PDD", je souhaiterai mettre la formule suivante :
    =SI($E14="PDD";"PDD";"A")

    Si je mets directement ma formule à la place de PDD, j'ai un pb de syntaxe à cause des ".

    comment dois-je l'intégrer dans mon code ?

    Merci pour votre aide

    Titoune

  2. #2
    Membre éclairé Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 576
    Par défaut
    Citation Envoyé par titouneee
    Bonjour,

    Je souhaiterai, à l'aide d'une macro, affecter une formule à ma cellule, j'utilise le code (tout simple) suivant :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    colonne = 16
     
    For i = 1 To 5
     
        If Cells(i, colonne) <> "" Then
            Cells(i, colonne).select
    ActiveCell.FormulaR1C1 = "SI($E14=""PDD"";""PDD"";""A"")"
        End If
     
    Next
    à la place de "PDD", je souhaiterai mettre la formule suivante :
    =SI($E14="PDD";"PDD";"A")

    Si je mets directement ma formule à la place de PDD, j'ai un pb de syntaxe à cause des ".

    comment dois-je l'intégrer dans mon code ?

    Merci pour votre aide

    Titoune

  3. #3
    Membre éclairé Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 576
    Par défaut
    Erreur de manip de ma part
    Désolé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    colonne = 16
     
    For i = 1 To 5
     
        If Cells(i, colonne) <> "" Then
            Range(Cells(i, colonne)).Select
            ActiveCell.FormulaR1C1= "=IF($E14=""PDD"",""PDD"",""A"")"
        End If
     
    Next

  4. #4
    Invité
    Invité(e)
    Par défaut


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    colonne = 16
    For i = 1 To 5
        If Cells(i, colonne) <> "" Then
            Cells(i, colonne).FormulaLocal = "=SI($E14=""PDD"";""PDD"";""A"")"
        End If    
    Next
    Devrait mieux fonctionner

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 10
    Par défaut
    Citation Envoyé par BrunoM45


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    colonne = 16
    For i = 1 To 5
        If Cells(i, colonne) <> "" Then
            Cells(i, colonne).FormulaLocal = "=SI($E14=""PDD"";""PDD"";""A"")"
        End If    
    Next
    Devrait mieux fonctionner

    Ca fonctionne bien, merci !!

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 10
    Par défaut
    Citation Envoyé par marsupilami34
    Erreur de manip de ma part
    Désolé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    colonne = 16
     
    For i = 1 To 5
     
        If Cells(i, colonne) <> "" Then
            Range(Cells(i, colonne)).Select
            ActiveCell.FormulaR1C1= "=IF($E14=""PDD"",""PDD"",""A"")"
        End If
     
    Next
    Merci pour ton aide également mais j'obtiens l'erreur suivante en exécutant ce code : "La méthode 'Range' de l'objet '_Global' a échouée"

  7. #7
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Hello,

    dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FormulaR1C1 = .... E14 ....
    d'emblée, il y a comme qui dirait incohérence.

    Suivant le mode de saisie de la formule ...
    • FormulaLocal = "SI(..;...E14;..)"
    • FormulaR1C1 = "IF(..,...R14C5,..)"
    • Formula = "IF(..,...E14,..)"

  8. #8
    Membre éprouvé Avatar de agueffier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 93
    Par défaut
    Bonjour,

    pour répondre à ton problème de syntaxe, je pense qu'en doublant simplement les guillemets (") à l'intérieur de la chaine cela devrait passer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(i, colonne).Value = "=SI($E14=""PDD"";""PDD"";""A"")"
    Si toutefois un problème persiste, utilise en plus la propriété Formula de l'objet Range (ici ta cellule) sans le égal (=) au début de ton argument.

    Voilà, en espérant que cela résolve ton soucis

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 10
    Par défaut
    Citation Envoyé par agueffier
    Bonjour,

    pour répondre à ton problème de syntaxe, je pense qu'en doublant simplement les guillemets (") à l'intérieur de la chaine cela devrait passer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(i, colonne).Value = "=SI($E14=""PDD"";""PDD"";""A"")"
    Si toutefois un problème persiste, utilise en plus la propriété Formula de l'objet Range (ici ta cellule) sans le égal (=) au début de ton argument.

    Voilà, en espérant que cela résolve ton soucis
    Merci pour ton aide :-)

    J'ai l'erreur suivante : "Erreur definie par l'application ou l'objet"

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

Discussions similaires

  1. [XL-2013] affecter une formule à une cellule
    Par maroonx dans le forum Excel
    Réponses: 5
    Dernier message: 28/02/2015, 16h38
  2. [XL-2007] Impossible d'affecter une formule à une cellule
    Par esigwald dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/03/2011, 17h03
  3. Réponses: 6
    Dernier message: 24/01/2007, 08h15
  4. 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
  5. appliquer une formule à +sieurs cellules excel
    Par ramsesthebest dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/09/2005, 20h36

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