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 :

Insérer une formule dans une cellule et Vlookup renvoyant la valeur d'une colonne apr son nom !


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 206
    Par défaut Insérer une formule dans une cellule et Vlookup renvoyant la valeur d'une colonne apr son nom !
    Bonsoir à tous,

    Désolé pour cette double question, mais elles me semblent relativement courtes et liées (peut-être ?!) pour ne pas les séparer.

    Je souhaite insérer une formule dans une cellule, via le code.
    En utilisant la macro, j'en arrive à un code ressemblant à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        ActiveCell.FormulaR1C1 = _
            "=VLOOKUP([@Devise],Table1[#All],Table1[[#Headers],[Symbol]])"
    Afin de l'adapter à mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("TblCash").Cells(ligne, 3).FormulaR1C1 = "=VLOOKUP([@Devise];Table1[#All];Table1[[#Headers],[Symbol]])"
    L'exécution me renvoit un message d'erreur run-time 1004 (application or object difinited error)
    Il en va de même en essayant via un range :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("TblCash").Range("C" & ligne).FormulaR1C1 = "=VLOOKUP([@Devise];Table1[#All];Table1[[#Headers],[Symbol]])"
    Ca, c'est pour le côté "code" de ma question
    !
    La seconde partie est : comment, plutôt que d'indiquer un numéro de colonne (qui peut varier dans le temps), utiliser le nom de celle-ci comme 3ème argument de mon VLOOKUP ?! (La première colonne sera toujours figée, par contre)

    En vous remerciant par avance pour votre précieuse aide,

    Wulfram

  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 569
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 569
    Par défaut
    Bonjour

    Ne pas oublier le 4ème argument...

    Pour remplacer un numéro de colonne par son titre il faut imbriquer un EQUIV ou, si colonne nommée dans le gestionnaire de noms, par les propriétés du range nommé

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 206
    Par défaut
    Bonsoir,

    Effectivement, en utilisant un MATCH (équivalent anglais d'EQUIV je suppose !), j'arrive à faire fonctionner la fonction VLOOKUP !

    Mais pas plus à l'assigner à la cellule via le code VBA ! Je pense que la matinée de demain sera destinée à régler ce petit inconvénient passager !

    Merci en tout cas de m'avoir montré la canne à pêche, c'est effectivement plus productif que d'apporter le poisson tout prêt !

    Wulfram

    [EDIT]
    Pour ce qui est du code VBA, en passant par la propriété FormulaLocal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("TblCash").Cells(ligne, 3).FormulaLocal = "=VLOOKUP([@Devise];Table1[#All];MATCH(Table1[[#Headers];[Symbol]];TblListeDevises!$1:$1;0);FALSE)"
    Le code fonctionne sans problèmes. Par contre, je trouve cela étrange, utilisant moi-même une version anglaise de la suite Office, le simple "Formula" devrait avoir le même effet ?!
    Et, pour le coup, cette formule m'enlève pas mal de portabilité puisqu'elle ne fonctionnera que sur des postes utilisant la même langue que moi ?

  4. #4
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 569
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 569
    Par défaut
    Re

    Tu peux utiliser FormulaR1C1

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 206
    Par défaut
    Bonjour,

    C'est bien la propriété que je pensais utiliser initialement, mais comme indiqué dans mon premier message, j'ai alors un message d'erreur !

  6. #6
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 569
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 569
    Par défaut
    Re

    Remplacer $1:$1 par C1 : on ne peut mélanger les 2 notations

Discussions similaires

  1. [WD18] Récupérer la valeur d'une formule dans un fichier Excel
    Par hassane03 dans le forum WinDev
    Réponses: 6
    Dernier message: 15/06/2015, 17h30
  2. [XL-2010] Stockage de la valeur d'une formule dans une variable
    Par Coxtox dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 30/04/2015, 09h59
  3. Réponses: 7
    Dernier message: 26/09/2014, 14h29
  4. retourner la valeur d'une formule dans une cellule
    Par Mimosa777 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/12/2011, 20h45
  5. [AC-2007] Renvoyer dernier valeur d'une table dans zone de texte
    Par amartik dans le forum IHM
    Réponses: 1
    Dernier message: 15/01/2010, 14h39

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