Macro
katiaboutamdja
Messages postés
16
Statut
Membre
-
katiaboutamdja Messages postés 16 Statut Membre -
katiaboutamdja Messages postés 16 Statut Membre -
Bonjour,
J'ai un code pour calculer simplement la corrélation entre deux colonnes et l'afficher en C2, avec les données pour calculer les correl en A et B
J'arrive pas à le modifier pour calculer la corrélation 2 à 2 entre des données situer sur le range(C2:TA61) dans 7 feuilles excel et mettre un tableau de correl(7 lignes 7 colonnes) dans une 8ème feuille à créer
J'ai donc 7 feuilles excel (pour chaque client) avec mes données sur le range (C2:TA61)
Sub correl()
Dim ans As Double
Dim rRngA As Range
Dim rRngB As Range
Set rRngA = Range("A2", Range("A2").End(xlDown))
Set rRngB = rRngA.Offset(, 1)
ans = Application.WorksheetFunction.correl(rRngA, rRngB)
Range("C2") = ans
End Sub
Merci beaucoup pour votre aide
J'ai un code pour calculer simplement la corrélation entre deux colonnes et l'afficher en C2, avec les données pour calculer les correl en A et B
J'arrive pas à le modifier pour calculer la corrélation 2 à 2 entre des données situer sur le range(C2:TA61) dans 7 feuilles excel et mettre un tableau de correl(7 lignes 7 colonnes) dans une 8ème feuille à créer
J'ai donc 7 feuilles excel (pour chaque client) avec mes données sur le range (C2:TA61)
Sub correl()
Dim ans As Double
Dim rRngA As Range
Dim rRngB As Range
Set rRngA = Range("A2", Range("A2").End(xlDown))
Set rRngB = rRngA.Offset(, 1)
ans = Application.WorksheetFunction.correl(rRngA, rRngB)
Range("C2") = ans
End Sub
Merci beaucoup pour votre aide
A voir également:
- Macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Macro maker - Télécharger - Divers Utilitaires
- Actiona macro - Télécharger - Divers Utilitaires
10 réponses
Bonjour,
Tu a testé les adresses !
A+
Tu a testé les adresses !
Sub correl()
Dim rRngA As Range
Dim rRngB As Range
Dim Lig As Long
Lig = Range("A65536").End(xlUp).Row
With Sheets("feuil1")
Set rRngA = .Range(.Cells(2, 1), .Cells(Lig, 1))
Set rRngB = .Range(.Cells(2, 2), .Cells(Lig, 2))
.Range("C2") = Application.WorksheetFunction.correl(rRngA, rRngB)
End With
End Sub
A+
Merci beaucoup pour ta réponse
Ca me met erreur d'execution 1004
Impossible de lire la propriété correl de la fenetre d'execution
Et cque jveux faire c pas exactement ca , le code que j'ai mis au début il marche bien mais c jucte pour calculer la corrélation entre deux colonnes d'une meme feuille que je lui demande de me mettre sur C2 et justement jveux le changer:
c
MERCIIIIIII
Ca me met erreur d'execution 1004
Impossible de lire la propriété correl de la fenetre d'execution
Et cque jveux faire c pas exactement ca , le code que j'ai mis au début il marche bien mais c jucte pour calculer la corrélation entre deux colonnes d'une meme feuille que je lui demande de me mettre sur C2 et justement jveux le changer:
c
MERCIIIIIII
Dans mon exemple il faut bien entendu adapter le nom de la feuille.
Pour ton tableau ?? entre C et TA il y a plus de 7 colonnes !, explique en plus clair.
Je commence à comprendre mais j'attend la suite.
Pour ton tableau ?? entre C et TA il y a plus de 7 colonnes !, explique en plus clair.
Je commence à comprendre mais j'attend la suite.
Merci encore pour ton aide
adapter le nom de la feuille ca bien sur je sais faire
bien sur qu'entre C et TA il y a plus de 7 colonnes, quand je dis 7 c'est pas 7 colonnes mais 7 feuilles excels, c'est les données qui se trouvent entre C et TA de la ligne 2 à 61
Et les corrélations qu'il faut calculer c'est pas entre des colonnes d'une meme feuille excel
mais la correl entre les 7 feuilles(entre les données qui se trouvent dans les 7 feuilles de C2 à TA61)
par exemple:
1ère correlationn que je veux: facile tu cliques sur fonction dans excel tu selectionne le range C2:TA61 de la première feuille dans la première ligne matrice1 de la fonction
puis dans la deuxième matrice de la fonction COEFFICIENT.CORRELATION de excel tu selectionne le range C2:TA61 de la deuxième feuille excel(y'en à 7 des feuilles)
Et ainsi de suite on aura en, tou 7*6corrélations ( parceque y'a 7 feuilles)
J'éspère pour moi que je me suis mieux fait comprendre
Merci beaucoup trop sympa pour ton aide
adapter le nom de la feuille ca bien sur je sais faire
bien sur qu'entre C et TA il y a plus de 7 colonnes, quand je dis 7 c'est pas 7 colonnes mais 7 feuilles excels, c'est les données qui se trouvent entre C et TA de la ligne 2 à 61
Et les corrélations qu'il faut calculer c'est pas entre des colonnes d'une meme feuille excel
mais la correl entre les 7 feuilles(entre les données qui se trouvent dans les 7 feuilles de C2 à TA61)
par exemple:
1ère correlationn que je veux: facile tu cliques sur fonction dans excel tu selectionne le range C2:TA61 de la première feuille dans la première ligne matrice1 de la fonction
puis dans la deuxième matrice de la fonction COEFFICIENT.CORRELATION de excel tu selectionne le range C2:TA61 de la deuxième feuille excel(y'en à 7 des feuilles)
Et ainsi de suite on aura en, tou 7*6corrélations ( parceque y'a 7 feuilles)
J'éspère pour moi que je me suis mieux fait comprendre
Merci beaucoup trop sympa pour ton aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Oui, mais suivant tes dernières explications ça ne donne que 7 résultats, comment en avoir 7*6 ????
sur quel Critère2 ??
Corel ne renvoyant qu'un seul résultat à la fois. ou s'il renvoi un tableau je connaît pas. Explique
J'ai déjà une macro qui travail sur 7 résultats et suivant ta réponse j'adapterais.
sur quel Critère2 ??
Corel ne renvoyant qu'un seul résultat à la fois. ou s'il renvoi un tableau je connaît pas. Explique
J'ai déjà une macro qui travail sur 7 résultats et suivant ta réponse j'adapterais.
c'est compliquer à faire comme code je reconnais
Voila ce qu'on veut ce tableau ( c ca les 7*6 car on a forcément des 1 en diagonale le coefficient de corrélation d'une plage de données à elle meme c forcément 1) on peut le mettre n'importe( ce tableau) ou sur une des 7 deja existantes ou en crér une 8ème pour le mettre spécialement dedans peut importe
Les chiffres je les ai mis au pif
Encore merci pour tout
Voila ce qu'on veut ce tableau ( c ca les 7*6 car on a forcément des 1 en diagonale le coefficient de corrélation d'une plage de données à elle meme c forcément 1) on peut le mettre n'importe( ce tableau) ou sur une des 7 deja existantes ou en crér une 8ème pour le mettre spécialement dedans peut importe
Les chiffres je les ai mis au pif
Encore merci pour tout
désolé, je pense pas pouvoir t'aider, j'y comprend rien dans tes explications.
Une approche pour plusieurs test.. sans prétention..
Ca pourra peut-être te donner des idées.
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Une approche pour plusieurs test.. sans prétention..
Sub correl()
Dim rRngA As Range
Dim rRngB As Range
Dim Lig As Long, i As Byte, LigC As Long, ColD As Integer
Dim Wks As Worksheet
Dim WkD As Worksheet
Dim WkT As Worksheet
LigC = 3 'la première ligne du tableau..à adapter
ColD = 4 'la première colonne du tableau.. à adapter
Set WkD = Sheets("Data") ' à adapter au nom de la feuille de données
Set WkT = Sheets("Tableau") ' à adapter au nom de la feuille de réception corel
Lig = Wks.Range("A65536").End(xlUp).Row
Set rRngA = Wks.Range(Wks.Cells(2, 1), Wks.Cells(Lig, 1)) 'plage 1
For i = 1 To Sheets.Count
'adapter au noms des feuilles à éviter...................
If Sheets(i).Name <> "Tableau" And Sheets(i).Name <> "Data" Then
'.......................................................
Set Wks = Sheets(i)
With Wks
Set rRngB = .Range(.Cells(2, 2), .Cells(Lig, 2))
If LigC = 3 Then WkT.Cells(LigC - 1, ColD) = Wks.Name
WkT.Cells(LigC, ColD) = Application.WorksheetFunction.correl(rRngA, rRngB)
LigC = LigC + 1
End With
'.......................................................
End If
Next i
End Sub
Ca pourra peut-être te donner des idées.
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Huummm, j'ai peut-être compris.
A adapter : les noms des feuilles à éviter et les plages.
Et y a pas 7 * 6 mais bien 7 * 7 (49) données pour 7 feuilles, à moins d'éviter la donnée 1 (ce qui est facilement faisable.)
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
A adapter : les noms des feuilles à éviter et les plages.
Sub TabloCorel()
Dim rRngA As Range
Dim rRngB As Range
Dim i As Byte, LigC As Long, ColD As Integer, Col As Integer
Dim F As Integer
Dim WkT As Worksheet
LigC = 3 'la première ligne du tableau..à adapter
Col = 4 'la première colonne du tableau.. à adapter
Set WkT = Sheets("Tableau") ' à adapter au nom de la feuille où placer le tableau corel
For i = 1 To Sheets.Count
'adapter au noms des feuilles à éviter...................
If Sheets(i).Name <> "Tableau" Then
WkT.Cells(LigC, Col) = Sheets(i).Name: ColD = Col + 1
Set rRngA = Sheets(i).Range("C2:TA61") 'plage 1
'.......................................................
For F = 1 To Sheets.Count
'adapter au noms des feuilles à éviter...................
If Sheets(F).Name <> "Tableau" Then
With Sheets(F)
Set rRngB = .Range("C2:TA61")
WkT.Cells(LigC, ColD) = Application.WorksheetFunction.correl(rRngA, rRngB)
ColD = ColD + 1
End With
End If
Next F
LigC = LigC + 1
'.......................................................
End If
Next i
Set WkT = Nothing
End Sub
Et y a pas 7 * 6 mais bien 7 * 7 (49) données pour 7 feuilles, à moins d'éviter la donnée 1 (ce qui est facilement faisable.)
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Offfuuiiit,
Pas envie de me remettre dans ce code sans explications complémentaires.
Met un classeur exemple (sans données confidentielles mais avec suffisement d'info pour extra-poler. ) Sur CiJoint.fr
Et prochaine fois, essaye de réagir un peu plus vite.
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Pas envie de me remettre dans ce code sans explications complémentaires.
Met un classeur exemple (sans données confidentielles mais avec suffisement d'info pour extra-poler. ) Sur CiJoint.fr
Et prochaine fois, essaye de réagir un peu plus vite.
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)