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 VBA


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
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 54
    Par défaut Insérer une formule VBA
    Bonjour,

    j'ai lu plusieurs discussions qui traite de cela mais malgré ma mise en application cela ne fonctionne pas.

    Je veux insérer en cellule B17 une formule. "
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(J12="";"";RECHERCHEV(J12;Database!A1:J150;3;FAUX))
    J'ai tenté deux codes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets(2).Range("B17").Select
    ActiveCell.FormulaR1C1Local = "=SI('J12'="";"";RECHERCHEV('J12';Database!'A1':'J150';3;FAUX))"
    J'ai tenté d'effectué un enregistrement de macro, ce qui donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Range("B2").Select
        ActiveCell.FormulaR1C1 = _
            "=IF(R[10]C[8]="""","""",VLOOKUP(R[10]C[8],Database!R[-1]C[-1]:R[148]C[8],3,FALSE))"
        Range("B3").Select
    Avec cette deuxième méthode, la formule s'insère bien en B17, sauf que toutes mes autres formules passent en version US/EN et donc plus rien de fonctionne.

    Merci d'avnance

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour,

    entrer la formule française telle quelle - en doublant toutefois les guillemets - via la propriété FormulaLocal

    Une formule entrée via une autre propriété Formula en version US native est automatiquement convertie
    dans la langue de la version d'Excel et donc ne change rien à son fonctionnement ‼
    Si cela ne fonctionne pas c'est juste une erreur de logique ou de syntaxe !   En aucun cas une histoire de langue …

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Quatre remarques :

    FormulaR1C1 insère les formule au format L1C1, c'est-à-dire avec des nombres pour désigner les colonnes. Pour une formule de type A1, il suffit de retirer R1C1.

    ActiveCell désigne une cellule activé (Activate) et non une cellule sélectionnée qui est désignée par Selection. Dans 90% des cas c'est la même chose mais mieux veut éviter de confondre pour ne pas avoir de problèmes dans les quelques cas particuliers.

    Select/Selection n'est pas utile.

    Pour mettre un guillemet dans une chaine, il faut le doubler.
    https://msdn.microsoft.com/fr-fr/vba...ring-data-type


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(2).Range("B17").FormulaLocal = "=SI('J12'="""";"""";RECHERCHEV('J12';Database!'A1':'J150';3;FAUX))"

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 54
    Par défaut
    Merci à vous.
    j'avais justement testé avec ForumlaLocal mais j'avais aussi un problème.

    J'ai malgré tout testé avec votre formule j'ai de nouveau une erreur.
    La macro ne copie pas la formule dans la cellule.

    Savez vous pourquoi?

  5. #5
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut


    N'étant pas sur un forum de divination, ne voyant pas ta tentative de code, j'affirme juste il comporte une erreur !

    Vérifier déjà en entrant une formule manuellement dans une cellule puis une fois fonctionnelle, comparer le code …

  6. #6
    Membre actif
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Avril 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Tchad

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2017
    Messages : 57
    Par défaut
    J'ai testé de mon côté et en respectant la syntaxe de l'enregistreur de macro cela fonctionne très bien.
    Y compris pour les autres formules qui sont en Francais dans Excel, cela n'impacte en rien.

    Bref je ne comprend pas son problème car chez moi ca fonctionne très bien.

    Bonne soirée,

  7. #7
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut




    Tout comme de mon côté depuis ~ 20 ans sur différentes versions !   Effectivement, juste respecter la syntaxe …

  8. #8
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Razekiel_ Voir le message
    j'avais aussi un problème.
    Ca, on peut dire que c'est extrêmement clair et détaillé comme description de problème.


    La macro ne copie pas la formule dans la cellule.
    Ca veut dire qu'après la macro il n'y a rien dans B17 ?
    Es-tu sûr que "Sheets(2)" est bien celle que tu crois ?
    Mets dans ton code un test pour vérifier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print Sheets(2).Name, Sheets(2).Workbook.Name

Discussions similaires

  1. Insérer une formule dans une cellule Excel via VBA
    Par *.Har(d)t dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/02/2020, 13h02
  2. Insérer une formule par VBA
    Par Carmiel dans le forum Excel
    Réponses: 7
    Dernier message: 13/12/2016, 21h55
  3. Réponses: 5
    Dernier message: 27/02/2014, 12h09
  4. [XL-2003] Insérer une formule avec "Rank" en VBA
    Par apnw7931 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/04/2011, 11h48
  5. [Toutes versions] Insérer une formule VBA
    Par F.Salenko dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/03/2011, 15h07

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