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


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 12
    Par défaut Mettre une formule dans une cellule
    Bonjour,
    Je souhaite mettre la formule suivante dans plusieurs cellules à l'aide de VBA.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =RECHERCHE(D2;'2.liste IC'!A$2:A$b;'2.liste IC'!B$2:B$102)
    J'avais fais comme ca mais cela ne marche pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For a = 2 To i
    Cells(a, 9).Value = "=RECHERCHE(D2;'2.liste IC'!A$2:A$102;'2.liste IC'!B$2:B$102)"
    Cells(a, 10).Value = "=RECHERCHE(C2;'3.entités pôles'!A$2:A$204;'3.entités pôles'!B2:B204)"
    Next a
    J'ai regardé comment se comporté l'enregistreur de macro:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Range("I2").Select
        ActiveCell.FormulaR1C1 = _
            "=LOOKUP(RC[-5],'2.liste IC'!R2C[-8]:R102C[-8],'2.liste IC'!R2C[-7]:R102C[-7])"
    Le code n'est pas plus compréhensible.


    De plus les "valeurs" A$102 et A$204 sont variables, j'ai deux variables (b et c) qui comportent le bon numéro de ligne. Il faudrait donc que j'arrive à faire quelque chose comme ca: A$b et A$c

    Est-ce quelqu'un peu m'aider?

    Merci et bonne journée.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 12
    Par défaut
    J'arrive à remplir mes cellules en utilisant cette syntaxe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("I2:I" & i).Formula = "=LOOKUP(D2,'2.liste IC'!A$2:A$102,'2.liste IC'!B$2:B$102)"
    Range("J2:J" & i).Formula = "=LOOKUP(C2,'3.entités pôles'!A$2:A$1558,'3.entités pôles'!B$2:B$1558)"

    Je reste cependant bloqué sur mon histoire de variable.

    Merci de votre aide.

  3. #3
    Membre émérite Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Par défaut
    Bonjour,

    Tout d'abord :
    formula : c'est pour écrire les formules en absolu
    formulaRC: c'est pour écrire les formules en relatif.

    Pour ton problème si b et c désignent les indices variables de fin de plage:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim str_formule as String
    str_formule = ""
     
    For a = 2 To i
      str_formule = "=RECHERCHE(D2;'2.liste IC'!A$2:A$" & b & ";'2.liste IC'!B$2:B$" & b & ")"
      Range("I2:I" & i).Formula = str_formule
      str_formule = "=RECHERCHE(C2;'3.entités pôles'!A$2:A$" & c & ";'3.entités pôles'!B$2:B$" & c & ")"
      Range("J2:J" & i).Formula = str_formule
    Next a

  4. #4
    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,

    Pour utiliser les formules en Français, il te faut utiliser FormulaLocal.
    Formula attendant dans ton cas un VLOOKUP et non un RECHERCHEV

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim str_formule as String
    str_formule = ""
     
    For a = 2 To i
      str_formule = "=RECHERCHE(D2;'2.liste IC'!A$2:A$" & b & ";'2.liste IC'!B$2:B$" & b & ")"
      Range("I2:I" & i).FormulaLocal = str_formule
      str_formule = "=RECHERCHE(C2;'3.entités pôles'!A$2:A$" & c & ";'3.entités pôles'!B$2:B$" & c & ")"
      Range("J2:J" & i).FormulaLocal = str_formule
    Next a

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