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 :

Fameuses guillemets dans une formule de calcul


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Mars 2011
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Contrôleur de Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2011
    Messages : 316
    Par défaut Fameuses guillemets dans une formule de calcul
    Bonjour,

    Je suis perdu dans les guillemets quand elles font référence à l'appel d'un fichier et quand la formule elle même fait référence à des guillemets et "&"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range("P" & l + compteur).FormulaLocal = "=SOMME.SI(VARIABLEMATERIEL!$D:$D;$M" & l + compteur & ";INDIRECT(ADRESSE(1;COLONNE($P$1)+SI(CNUM(GAUCHE($P$1;4))=Sommaire!$E$3;-5;8);;;'VARIABLEMATERIEL')""& "":"" & ""ADRESSE(400;COLONNE($P$1)+SI(CNUM(GAUCHE($P$1;4))=Sommaire!$E$3;-5;8);;;)))*SOMME.SI(TarifAppliquer!$D:$D;$M" & l + compteur & ";INDIRECT(ADRESSE(1;COLONNE($P$1)+SI(CNUM(GAUCHE($P$1;4))=Sommaire!$E$3;8;22);;;'TarifAppliquer')""&"":"" & ""ADRESSE(400;COLONNE($P$1)+SI(CNUM(GAUCHE($P$1;4))=Sommaire!$E$3;8;22);;;)))"
    La formule de calcul excel est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME.SI(VARIABLEMATERIEL!$D:$D;VARIABLEMATERIEL!M65;INDIRECT(ADRESSE(1;COLONNE($P$1)+SI(CNUM(GAUCHE($P$1;4))=Sommaire!$E$3;-5;8);;;"VARIABLEMATERIEL")&":"&ADRESSE(400;COLONNE($P$1)+SI(CNUM(GAUCHE($P$1;4))=Sommaire!$E$3;-5;8);;;)))*SOMME.SI(TarifAppliquer!$D:$D;TarifAppliquer!M65;INDIRECT(ADRESSE(1;COLONNE($P$1)+SI(CNUM(GAUCHE($P$1;4))=Sommaire!$E$3;8;22);;;"TarifAppliquer")&":"&ADRESSE(400;COLONNE($P$1)+SI(CNUM(GAUCHE($P$1;4))=Sommaire!$E$3;8;22);;;)))
    Merci de votre aide

  2. #2
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour,
    Tout d'abord, pour écrire une formule avec FormulaLocal, il faut que ce soit en anglais. EDIT : faux !
    Le plus simple pour savoir où mettre les guillemets et être sûr de la syntaxe et de procéder ainsi :
    1. Dans la feuille, écrire la formule à l'endroit souhaité (à la main!).
    2. Lancer l'enregistreur de macro.
    3. Double-cliquer dans la cellule de la formule (entrer dans la cellule comme si on voulait la modifier).
    4. Cliquer sur entrer.
    5. Arrêter l'enregistreur de macro.
    6. Regarder ce que ça donne comme code.

  3. #3
    Membre éclairé
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Mars 2011
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Contrôleur de Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2011
    Messages : 316
    Par défaut
    riaolle,

    merci pour ce retour.

    Concernant
    pour écrire une formule avec FormulaLocal, il faut que ce soit en anglais
    dans ma macro j'ai ce code qui fonctionne sans souci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("P" & l).FormulaLocal = "=SI(ET(DATE(GAUCHE($P$1;4);COLONNE(P" & l & ")-15;1)>$AE" & l & ";DATE(GAUCHE($P$1;4);COLONNE(P" & l & ")-15;1)<$M" & l & ");$AF" & l & ";0)+SI($O" & l & ">$M" & l & ";SI(ET(DATE(GAUCHE($P$1;4);COLONNE(P" & l & ")-15;1)>$M" & l & ";DATE(GAUCHE($P$1;4);COLONNE(P" & l & ")-15;1)<$O" & l & ");$N" & l & ";0);0)"
    et pour
    Lancer l'enregistreur de macro.
    ce n'est pas un réflexe que j'ai. Mais compte tenu qu'elle répond à mon besoin, j'adopte pour l'avenir.

    Merci grandement.

    Le bon code au cas ou ça servirait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range("P" & l + compteur).FormulaLocal = "=SOMME.SI(VARIABLEMATERIEL!$D:$D;$M" & l + compteur & ";INDIRECT(ADRESSE(1;COLONNE($P$1)+SI(CNUM(GAUCHE($P$1;4))=Sommaire!$E$3;-5;8);;;""VARIABLEMATERIEL"")&"":"" &ADRESSE(400;COLONNE($P$1)+SI(CNUM(GAUCHE($P$1;4))=Sommaire!$E$3;-5;8);;;)))*SOMME.SI(TarifAppliquer!$D:$D;$M" & l + compteur & ";INDIRECT(ADRESSE(1;COLONNE($P$1)+SI(CNUM(GAUCHE($P$1;4))=Sommaire!$E$3;8;22);;;""TarifAppliquer"")&"":"" &ADRESSE(400;COLONNE($P$1)+SI(CNUM(GAUCHE($P$1;4))=Sommaire!$E$3;8;22);;;)))"

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

Discussions similaires

  1. [XL-2007] Référence à un nom d'onglet dans une formule de calcul
    Par FXdeCadix dans le forum Excel
    Réponses: 2
    Dernier message: 19/05/2010, 17h17
  2. utiliser une variable dans une formule de calcul
    Par alainb dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/11/2008, 14h23
  3. Pb arrondi dans une formule de calcul
    Par REMACC1 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/03/2006, 09h16
  4. [VBA-E] Copier une formule de calcul dans toute la ligne
    Par kernel57 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/12/2005, 18h18
  5. problème de guillemets dans une formule shell
    Par dim_italia dans le forum VBA Access
    Réponses: 7
    Dernier message: 18/08/2003, 12h46

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