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 :

[Débutant]Insérer une formule dans une cellule [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
    Artisan en retraite
    Inscrit en
    Juin 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Artisan en retraite
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2008
    Messages : 51
    Par défaut [Débutant]Insérer une formule dans une cellule
    Bonjour à tous,

    J'ai un souci pour insérer une formule dans une cellule :
    Dans une macro je veux insérer des données dans une BD en créant une nouvelle ligne avec ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    NewLig = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
        .Range("A" & NewLig).Value = Variable1 ' Ici ça marche
    .Range("B" & NewLig).Value = Variable2      ' Ici aussi
    .Range("E" & NewLig).Value = Formule ' C'est ici que j'y arrive pas!
    Ma formule devrait être du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "=If("C" & NewLig ="Non";1;2)" ' Bien sur ça foire!!! Formule Excel: =Si(Cx="Non";1;2)
    .... Je n'arrive pas à l'écrire convenablement.

    Merci pour votre aide

    Cordialement
    Magnum812

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour

    Il faut utiliser Formula à la place de Value

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range("E" & NewLig).Formula = "=If(C" & NewLig & "=""Non"";1;2)"
    NB : Si tu veux mettre la formule en français, tu peux utiliser FormulaLocal à la place de Formula


    edit : J'ai corriger la formule qui avait des erreurs dans les "

  3. #3
    Membre averti
    Homme Profil pro
    Artisan en retraite
    Inscrit en
    Juin 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Artisan en retraite
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2008
    Messages : 51
    Par défaut
    Merci pour ta réponse jfontaine,

    J'ai essayé mais ça ne fonctionne pas....
    Le message d'erreur est :

    Erreur d'execution '1004'
    Erreur définie par l'application ou par l'objet
    J'ai essayé de mofifier les " , mais sans succès....

    Cordialement
    Magnum812

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Remplace aussi les ; par des ,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range("E" & NewLig).Formula = "=If(C" & NewLig & "=""Non"",1,2)"

  5. #5
    Membre averti
    Homme Profil pro
    Artisan en retraite
    Inscrit en
    Juin 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Artisan en retraite
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2008
    Messages : 51
    Par défaut
    Un grand Merci bbil, ça marche...

    C'est vrai que j'ai des soucis avec les formules Excel vers VBA...

    Est-ce qu'avec FormulaLocal on peut écrire les formules exactement comme avec Excel ?
    Exemple:
    xxxxx.FormulaLocal = "=SI(C3="Non";1;2)" ou "=SI(C & NewLig ="Non";1;2)" ou quelque chose dans ce genre...

    Merci pour vos réponses

    Cordialement
    Magnum812

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    oui .. mais tu peu aussi vérifier ta syntaxe en écrivant ta formule sous excel puis grâce aux touches ALT-F11 (Pour passer dans l'éditeur VBA) puis CTRL+G pour afficher la fenêtre d'exécution et tu affiche la formule en tapant le code dans cette fenêtre exécution :


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

Discussions similaires

  1. [XL-2010] Insérer le résultat d'une formule dans une case
    Par Walaboss dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/04/2015, 17h19
  2. [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
  3. Réponses: 2
    Dernier message: 23/03/2014, 12h05
  4. [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
  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