astuce pour corrélogramme

B3lga

XLDnaute Junior
bonjour,
je cherche à réaliser un corrélogramme à l'aide de vba afin qu'il soit toujours adapté aux données. je voudrais donc quel est le code qui permet de recopier une plage de cellules en décalé (décalage d'une colonne vers la droite et d'une cellule vers le bas) et ce, un nombre de fois déterminé par la taille de la plage de cellule.
merci
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : astuce pour corrélogramme

Bonjour

un essai et un coucou à Pierrejean

Code:
Sub Macro1()

Dim Maligne As Integer, x As Integer, y As Integer

Maligne = Range("A1").End(xlDown).Row

For x = 2 To Maligne
    For y = x + 1 To Maligne
        Cells(y, x) = Cells(y - 1, x - 1)
    Next
Next


End Sub
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : astuce pour corrélogramme

Re

une petite modif pour ajouter la formule

Code:
Sub Macro1()

Dim Maligne As Integer, x As Integer, y As Integer

Maligne = Range("A1").End(xlDown).Row

For x = 2 To Maligne - 2
    For y = x + 1 To Maligne
        Cells(y, x) = Cells(y - 1, x - 1)
    Next
    Cells(Maligne + 1, x).FormulaR1C1 = "=CORREL(R2C1:R15C1,R[-14]C:R[-1]C)"
Next


End Sub
 

B3lga

XLDnaute Junior
Re : astuce pour corrélogramme

je viens de me remettre sur le corrélogramme et je soulève un problème. comment faire dans le code VBA, au niveau de la formule :

Cells(Maligne + 1, x).FormulaR1C1 = "=CORREL(R2C1:R15C1,R[-14]C:R[-1]C)"

pour remplacer R[-14]C:R[-1]C par une plage de cellule qui varie en fonction du nombre de valeurs que l'on souhaite calculer.
ici, le souci c'est que la formule ne va prendre que les 13 valeurs immédiatement au-dessus de la formule.
j'ai déjà remplacer le premier terme du calcul par une plage de cellules que j'ai nommé.
 

Discussions similaires

Statistiques des forums

Discussions
312 691
Messages
2 090 992
Membres
104 722
dernier inscrit
Tuaneps