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 :

formule en macro [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 39
    Par défaut formule en macro
    bonjour,
    j'ai la meme formule dans plusieurs cellule,
    je voudrai la faire en macro car elle ralenti excel mais je n'arrive pas a la mettre en forme
    la voici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     ActiveCell.FormulaR1C1 = _
            "=(2*R[-2]C-1)*((LN(NORMSDIST((R[-1]C-R2C35)/R2C42)))+LN(1-(NORMSDIST((R[-1]C[29]-R2C35)/R2C42))))"
    merci pour votre aide

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    range("D4:D10").FormulaR1C1 = _
            "=(2*R[-2]C-1)*((LN(NORMSDIST((R[-1]C-R2C35)/R2C42)))+LN(1-(NORMSDIST((R[-1]C[29]-R2C35)/R2C42))))"

  3. #3
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 39
    Par défaut
    malheureusement je ne peut pas faire ca
    car les cellules appeler dans la formule sont supprimez apres.
    donc si je fait un "range("D410").FormulaR1C1 = _....."
    je risque d'avoir des #ref.
    je voudrais en faite arriver a faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    n=30
    cpt=1
    do 
    activecell= (2*R[-2]C-1)*((LN(NORMSDIST((R[-1]C-R2C35)/R2C42)))+LN(1-(NORMSDIST((R[-1]C[29]-R2C35)/R2C42))))"
    activecell.offset(0,1).select
    cpt = cpt +1
    loop until cpt = n
    merci

  4. #4
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    bonjour,

    si je te suis bien, tu devrais faire un quelque chose dans le genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    Dim WF As WorksheetFunction
    Dim AC As Range
    Dim CPT As Integer
     
    Set WF = Application.WorksheetFunction
    Set AC = ActiveCell
     
     
    For CPT = 1 To 30
        AC.Value = (2 * AC.Offset(-2, -1)) * ((WF.Ln(WF.NormSDist((AC.Offset(-1, 0) - Cells(2, 35)) / Cells(2, 42)))) + WF.Ln(1 - (WF.NormSDist((AC.Offset(-1, 29) - Cells(2, 35)) / Cells(2, 42)))))
        Set AC = AC.Offset(0, CPT)
    Next CPT

  5. #5
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,

    ou pour une grande liste de donnée, le code de mercatog avec une autre instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    range("D4:D10").FormulaR1C1 = _
            "=(2*R[-2]C-1)*((LN(NORMSDIST((R[-1]C-R2C35)/R2C42)))+LN(1-(NORMSDIST((R[-1]C[29]-R2C35)/R2C42))))"
    Range("D4:D10").Copy
    Range("D4:D10").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    ou simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With Range("D4:D10")
        .FormulaR1C1 = "=(2*R[-2]C-1)*((LN(NORMSDIST((R[-1]C-R2C35)/R2C42)))+LN(1-(NORMSDIST((R[-1]C[29]-R2C35)/R2C42))))"
        .Value = .Value
    End With

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

Discussions similaires

  1. Collage de la formule par macro
    Par Lechette dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 31/03/2008, 17h04
  2. formules et macros
    Par ghostdog dans le forum Deski
    Réponses: 1
    Dernier message: 04/09/2006, 14h55
  3. Réponses: 9
    Dernier message: 30/08/2006, 23h13
  4. [VBA/Excel] Formule via macro
    Par UNi[FR] dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/10/2005, 15h11

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