Calcul du coefficient directeur et de l'ordonnée à l'origine

Résolu
Morgan67700 Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   -  
Morgan67700 Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour le forum,

Me revoilà avec une nouvelle problématique, j'aimerai bien faire un code pour pouvoir calculer le coefficient directeur et l'ordonnée à l'origine d'une série de donnée avec la taille de la plage qui est variable. J'ai trouvé la fonction "droitereg" et "ordonnée.origine" sur excel mais pour le faire passer par le VBA je ne trouve pas de solution. J'ai aussi essayé avec Linest et Index mais sans succès. Est-ce quelqu'un a déjà utilisé des fonctions de ce genre?
Je met mon fichier en pj sur Ci-joint: http://www.cjoint.com/c/EFqhtoE1iZL

Merci

Morgan67700
A voir également:

2 réponses

ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour

Pour faire ça, tu n'as pas forcément besoin de passer par vba
Un petit exemple
http://www.cjoint.com/c/EFqnAHzs5zg

Sinon, peut être ici
https://www.developpez.net/forums/d818116/logiciels/microsoft-office/excel/macros-vba-excel/macro-droitereg-boucle/

Cdlmnt
1
Morgan67700 Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour,

Merci d'avoir répondu, j'ai trouvé la solution qui me convenait le mieux et j'ai trouvé en faisant un peu plus attention à la syntaxe VBA française/anglaise, il fallait mettre des virgules "," et non des points virgules ";" dans la plage des fonctions. Ensuite avec l'enregistreur de macro j'ai réussi à avoir la fonction en anglais: DROITEREG donne LINEST et ORDONNEE.ORIGINE donne INTERCEPT.
Ce qui nous fait donc ce code là avec la plage variable:

Sub Calcul ()
Application.ScreenUpdating = False

Dim Col1 As Integer ' Première colonne de la plage pour rechercher les COEFFS A ET B de Ax+B
Dim Col2 As Integer ' Dernière colonne de la plage
Dim a As Integer ' Ligne de l'ordonnée y
Dim b As Integer ' Ligne de l'abscisse x

Col1 = Sheets(1).Range("A1").Column  ' Première colonne de données
Col2 = Sheets(1).Range("A1").End(xlToRight).Column ' Cherche la dernière colonne où il y a une données
  
a = Sheets(1).Range("A1").Row  ' Ligne de l'ordonnée y
b = Sheets(1).Range("A2").Row  ' Ligne de l'abscisse x

Sheets(1).Range("A4").FormulaArray = "=LINEST(" & Cells(a, Col1).Address & ":" & Cells(a, Col2).Address & "," & Cells(b, Col1).Address & ":" & Cells(b, Col2).Address & ")"
    
Sheets(1).Range("A5").FormulaArray = "=INTERCEPT(" & Cells(a, Col1).Address & ":" & Cells(a, Col2).Address & "," & Cells(b, Col1).Address & ":" & Cells(b, Col2).Address & ")"

Application.ScreenUpdating = True
End sub



Bien sûr ne pas oublier de mettre les données dans l'ordre, ici j'ai mis un code pour mettre les données d'abscisse x dans l'ordre croissant sinon le calcul du coefficient directeur est faussé.

Merci quand même.

Morgan67700
1