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 :

Utilisation de la fonction CORREL sous VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2024
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2024
    Messages : 7
    Par défaut Utilisation de la fonction CORREL sous VBA
    Bonjour,

    J'ai besoin de calculer le coefficient de corrélation entre deux séries numériques, mais qui sont de longueur variable suivant les différentes configurations.
    J'ai paramétré les deux séries numériques ainsi :
    Dim LigneFinRegression As Integer
    LigneFinRegression = 141 + nbpays
    Dim Plage1 As String
    Dim Plage2 As String
    Plage1 = "BA141:" & "BA" & LigneFinRegression
    Plage2 = "BB141:" & "BB" & LigneFinRegression

    J'ai tenté de calculer ainsi le coefficient de corrélation
    Range("BA141").Select
    ActiveCell.FormulaR1C1 = "=+CORREL(Plage1,Plage2)"
    Mais ma syntaxe de la fonction CORREL n'est pas bonne.
    Merci de votre aide !

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 418
    Par défaut
    Bonjour,

    Il faut écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Range("BA141").Formula = "=CORREL(" & Plage1 & "," & Plage2 & ")"
    Il serait préférable d'utiliser un tableau, ce qui éviterait de passer par du code VBA.
    Le tableau permet d'ajouter ou supprimer des lignes sans qu'il y ait à recalculer les plages, et donc la formule.

    Cordialement.
    Fichiers attachés Fichiers attachés

  3. #3
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2024
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2024
    Messages : 7
    Par défaut Pb avec le format tableau
    Merci pour cette réponse rapide.
    J'aimerais bien qu'en utilisant le format tableau cela fonctionne mais hélas si on filtre ou si on utilise un segment pour ne choisir que les lignes correspondant à un critère donné, le résultat du calcul du coefficient de corrélation ne change pas. Excel prend en compte les lignes masquées.
    Je regarde pour modifier mon code Vba


    Cordialement !

  4. #4
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 418
    Par défaut
    Effectivement. Eventuellement cette solution sur cette page.
    Cordialement.

  5. #5
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2024
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2024
    Messages : 7
    Par défaut
    Bonjour,

    J'ai avancé mais j'ai une erreur de syntaxe dans le script suivant :

    Fin est le numéro de la ligne où doit s'arrêter le calcul que j'ai récupéré avec la fonction Active.Cell.Row
    fin = ActiveCell.Row - 1

    ActiveCell.FormulaR1C1 = "=+CORREL("BC60" & ":" & "BC" & Fin & "," & "BB60" & ":" & " BB" & Fin)"

    Merci de votre aide !

  6. #6
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 191
    Par défaut
    Hello,

    voici une version corrigée (et j'ai simplifié la formule)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.Formula = "=CORREL(BC60:BC" & Fin & "," & "BB60:BB" & Fin")"
    FormulaR1C1 fait référence à des numéros de lignes et de colonnes donc sous la forme "R10C45" pas "BA142"...

    Voici la version (légèrement modifié) que EricDgn vous avait proposé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim Fin As Long
    Fin = ActiveCell.Row - 1
    Dim Plage1 As String
    Dim Plage2 As String
    Plage1 = "BC60:BC" & Fin
    Plage2 = "BB60:BB" & Fin
    ActiveCell.Formula = "=CORREL(" & Plage1 & "," & Plage2 & ")"
    Ceci dit, ActiveCell.Row - 1 fait référence à la ligne de la cellule active - 1, ce qui voudrait dire que vous devez forcément sélectionner la dernière ligne +1 et que la formule va s'inscrire dans cette cellule (et écrasé le contenu).

    Il y a certainement d'autres solution mais vous devrez nous donner plus de précision sur ce que vous voulez faire.

Discussions similaires

  1. [phpBB] Utilisation de la fonction mail sous Free
    Par Tex-Twil dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 17
    Dernier message: 03/01/2025, 21h02
  2. [XL-2016] Utiliser la fonction Data sous vba Excel 2016
    Par Dudulle32 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/10/2017, 16h55
  3. Utilisation de la fonction GetURL sous FlashLite 2.x
    Par foxrider dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 21/02/2008, 17h24
  4. Fonction SI sous VBA
    Par tdaoui dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 09/01/2008, 21h14
  5. [VBA-E]Fonction Racine sous VBA
    Par vuong1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/04/2007, 00h48

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