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

Excel Discussion :

Intégrer une formule en VBA


Sujet :

Excel

  1. #1
    Membre du Club Avatar de Maiden002
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 137
    Points : 69
    Points
    69
    Par défaut Intégrer une formule en VBA
    Bonjour,

    j'ai un petit probléme avec une formule que je voudrai intégrer en VBA,

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Test progress").Range("G" & i).Formula = "=SOMMEPROD((B14:B150=" & feuille & ")*(ESTNUM(J14:J150)))"

    En faite "feuille" est une de mes variables, elle cettes formules doit me servir pour plusieurs valeur.

    Ma formule devrait etre comme sa, mais CT10 est en faite la valeur de feuille donc sa peu etre CT01, CT02, etc sa change tout le temps.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((B14:B150="CT10")*(ESTNUM(J14:J150)))
    Mon probléme c'est que le CT10 doit etre entre guillemet, mais dans le code VB les guillemet serve a selectionner la formule a intégrer, donc je ne peux pas retrouver mon résultat a cette formule

  2. #2
    Membre éprouvé
    Avatar de ouisansdoute
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    931
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 931
    Points : 1 079
    Points
    1 079
    Par défaut
    re,

    Si ce n'est qu'une question de guillemets, utilise Chr(34) et modifie ton code de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Test progress").Range("G" & i).Formula = "=SOMMEPROD((B14:B150=" & Chr(34) & feuille & Chr(34) & ")*(ESTNUM(J14:J150)))"
    Une autre piste serait de stocker ta variable dans une cellule (par exemple en Z1) et ton code pourrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Worksheets("Test progress").Range("G" & i).Formula = "=SOMMEPROD((B14:B150=Z1)*(ESTNUM(J14:J150)))"
    Si non, comment est affectée la valeur de la variable feuille ?

  3. #3
    Membre du Club Avatar de Maiden002
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 137
    Points : 69
    Points
    69
    Par défaut
    remarque oui c'est pas bête étant donné que dans une case auparavant il y a la valeur de cette variable.

    je vais essayer et je te tiens au courant.

    Merci

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Points : 150
    Points
    150
    Par défaut
    Voici la formule modifiée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Test progress").Range("G" & i).Formula = "=SOMMEPROD((B14:B150=""" & feuille & """)*(ESTNUM(J14:J150)))"

    Remarque : vous avez peut-être déjà reçu un message avec cette réponse que j'ai publiée il y a 15 minutes. Je l'ai supprimée (logiquement) croyant que "ouisansdoute" avait donnée la réponse (pendant que je rédigeais la mienne). J'ai constaté que sa réponse était différente donc je remets la mienne (sans avoir pu annuler la suppression logique).

  5. #5
    Membre du Club Avatar de Maiden002
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 137
    Points : 69
    Points
    69
    Par défaut
    Merci a vous deux, celle de Char(34) marche et celle avec les trois guillemet aussi.

    Cependant, quand elle est créer, dans la case il y a marquer #NOM?, par contre si je me positionne sur la case pour modifier et que je tape ENTRER sa marche.

    C'est comme si il me mettai la formule mais sans la calculer.

  6. #6
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    bonjour à tous

    un autre problème : Formula demande une écriture des formules en anglais...
    .formula = "=SOMMEPRODUCT.........."
    sinon utiliser Formulalocal à la place...

  7. #7
    Membre du Club Avatar de Maiden002
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 137
    Points : 69
    Points
    69
    Par défaut
    Donc je devrai mettre ceci ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Test progress").Range("G" & i).Formula = "=SOMMEPRODUCT((B14:B150=""" & feuille & """)*(ESTNUM(J14:J150)))"
    Cela va t'il régler le probléme du #NOM?.

  8. #8
    Membre éprouvé
    Avatar de ouisansdoute
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    931
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 931
    Points : 1 079
    Points
    1 079
    Par défaut Traduire les fonctions
    Si tout doit être en anglais, la fonction ESTNUM se traduit par ISNUMBER.
    Ci-joint un fichier de traduction des fonctions
    Pièce jointe 47922

  9. #9
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 272
    Points
    11 272
    Par défaut
    Salut, ne pas oublier

  10. #10
    Membre du Club Avatar de Maiden002
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 137
    Points : 69
    Points
    69
    Par défaut
    Je vous montre un bout de mon code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     Worksheets("Test progress").Range("D" & i).EntireRow.Insert
                                'Ajoute une ligne dans la feuille "Test progress"
                                Worksheets("Test progress").Range("D" & i & ":H" & i).Borders.LineStyle = xlContinuous
                                'Ajoute les bordures précédent
                                Worksheets("Test progress").Range("D" & i & ":H" & i).Font.ColorIndex = 1
                                'Permet de mettre le texte en noir
                                Worksheets("Test progress").Range("D" & i & ":H" & i).Interior.ColorIndex = 35
                                'Permet de mettre la couleur vert clair en fond
                                Worksheets("Test progress").Range("D" & i & ":H" & i).HorizontalAlignment = xlCenter
                                'Permet de centrer les valeurs
                                Worksheets("Test progress").Range("D" & i).Value = feuille
                                'Ajoute la valeur de "feuille" dans la case D
                                Worksheets("Test progress").Range("E" & i).Value = description
                                'Ajoute la valeur "description" dans la case E
                                Worksheets("Test progress").Range("F" & i).Formula = "=NB.SI(B:B='" & feuille & "')"
                                Worksheets("Test progress").Range("G" & i).Formula = "=SOMMEPROD((B14:B150=""" & feuille & """)*(ESTNUM(J14:J150)))"
                                Worksheets("Test progress").Range("H" & i).Formula = "=SOMMEPROD((B14:B150=""" & feuille & """)*(J14:J150=""""))"
    Il y a juste pour les deux derniére formule que au lieu d'avoir le résultat j'ai #NOM? , alors que si aprés je me positionne dans la case approprié et que je fais ENTRER et bien j'ai bien le résultat.

    N'y a t-il pas une formule permettant de simulé la touche ENTRER ??

Discussions similaires

  1. Insérer une formule par VBA
    Par Carmiel dans le forum Excel
    Réponses: 7
    Dernier message: 13/12/2016, 21h55
  2. [XL-2002] Problème de syntaxe sur une formule dans VBA
    Par beber_le_stagiaire dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/06/2009, 15h32
  3. [VBA-E] ecrire une formule en vba
    Par Huubb dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 25/01/2007, 14h15
  4. Paramétrer une formule en vba
    Par arnogef dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/08/2006, 11h48
  5. Copier une formule avec vba
    Par NAMORJOSE dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/05/2006, 00h12

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