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 :

macro calcul de correlation


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 153
    Par défaut macro calcul de correlation
    bonjour,

    je cherche à créer un macro pour calculer une corrélation.

    j'ai crée un macro et ensuite utiliser la fonction " correlation " d' excel pour déterminer le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        ActiveCell.FormulaR1C1 = _
            "=CORREL(Correlation!RC[-2]:RC,correlationindice!R[21]C[-2]:R[21]C)"
    Avec la fonction excel le calcul se réalise correctement.

    Par contre lorsque je lance la macro ci-dessous rien ne se passe?

    comment dois je procéder pour que le calcul se fasse via la macro

    merci de votre aide

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Si tu ne veux que le résultat, tu peux passer par WorksheetFunction
    ActiveCell = Application.WorksheetFunction.CORREL(Worksheets(Correlation).range(L'adresse), worksheets(correlationindice).range(L'adresse))
    Pas testé.
    Par contre, évide d'utiliser "ActiveCell" qui signifie que tu sélectionnes ta cellule. Tu peux parfaitement utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Worksheets(NomDeLaFeuille).Cells(NoLigne, NoCol).value = ...
    'ou
    Worksheets(NomDeLaFeuille).Range(Cells(NoLigne, NoCol)).value =
    'ou
    Worksheets(NomDeLaFeuille).Range(Adresse).value =
    sans avoir rien à sélectionner. Il y a plus simple mais ce sera pour la prochaine question
    A+

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 153
    Par défaut
    bonjour,

    voilà mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    '
    ' CORRELATION Macro
    ' Macro enregistrée le 29/06/2007 par Administrateur
    '
     
    '
        Worksheets("Histocorrélation").Cells(2, 4).Value = ActiveCell.FormulaR1C1 = _
            "=CORREL(Correlation!RC[-2]:RC,correlationindice!R[21]C[-2]:R[21]C)"
    End Sub

    ensuite j'appelle "Sub CORRELATION()" est malgrès cela rien ne s'affiche


    j'ai oublié de faire un truc?

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Non, ça ne marche pas comme ça. Tu ne peux pas utiliser une formule de cellule Excel ainsi dans VBA. Je t'ai donné une piste mais je n'ai pas ton fichier et ne peux donc pas tester le code que je t'ai passé qui n'est donc qu'une indication sur la syntaxe.
    Pour placer le résultat de la formule dans une cellule tu es obligé de passer par Application.WorksheetFunction qui permet seul d'utiliser une fonction de feuille de calculs.

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 153
    Par défaut
    et ça cela te semble plus "réaliste"
    mais ca marche pas..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub correlation2()
    Dim correlation As String
    Dim correlationindice As String
     
    ActiveCell = Application.WorksheetFunction.Correl(Worksheets(correlation).Range("B2:D2"), Worksheets(correlationindice).Range("B23: D23"))
    Sheets("histocorrélation").Range("D2") = ActiveCell
     
     
     
    End Sub

  6. #6
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 153
    Par défaut
    je joints le fichier correspondant

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

Discussions similaires

  1. [OL-2003] macro calcul sur calendrier
    Par h3630fr dans le forum VBA Outlook
    Réponses: 0
    Dernier message: 20/01/2010, 17h54
  2. macro calcul factorielle
    Par elimaur dans le forum Macro
    Réponses: 9
    Dernier message: 11/01/2010, 09h44
  3. [Macro] Calcul sur échantillon mobile
    Par jacksparow dans le forum Macro
    Réponses: 2
    Dernier message: 20/09/2008, 14h15
  4. [Macro] Calcul de pourcentage sur table
    Par Ines2013 dans le forum Macro
    Réponses: 9
    Dernier message: 16/09/2008, 16h39
  5. [Q] VB Excel: Macros calcul de date jours ouvrés
    Par naouara17 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/05/2007, 13h59

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