Courbe de tendance VBA

  • Initiateur de la discussion Initiateur de la discussion PNI
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

PNI

XLDnaute Nouveau
Bonjour,

Je suis débutant en VBA et j'ai quelques difficultés concernant les courbes de tendances.

Tout d'abord j'ai une feuille de calcul ou j'ai un tableau de données de 10lignes par 5 colonnes.

Sur un graphique incorporé, j'ai tracé 4 séries de valeurs correspondant aux valeurs des 4 dernières colonnes de mon tableau avec la première colonne correspondant à mes abscisses.
Pour résumé, ma première colonne correspond aux abscisses et les 4 autres sont des données ou chaque colonne correspond à une série.(Donc je peux alors tracer 4 courbe de tendance, 1 pour chaque série).

Je souhaiterais savoir comment je peux les tracer en utilisant du code VBA, puis obtenir l'équation( ou coefficient directeur ) de cette droite dans une cellule.

Je vous remercie de votre aide.

PNI
Je vous remercie
 
Re : Courbe de tendance VBA

Bonjour PNI, bienvenue.
Déposez le classeur sur le forum, ça nous évitera dans fabriquer un qui, c'est probable, ne correspondra à votre modèle. Nous y gagnerons tous notre temps...​
ROGER2327
#4401


Dimanche 22 Haha 138 (Résurrection de Bosse-de-Nage, SS)
6 Brumaire An CCXIX
2010-W43-3T16:15:07Z
 
Re : Courbe de tendance VBA

Bonjour PNI,

Salut ROGER2327,


Sans fichier de référence, un exemple de mise en place de tendance linéaire par trois méthodes :

1- Méthode intuitive d'Excel :

- Sélectionner la plage des y ici la plage B2:B11 puis tirer vers le bas au moins le double des valeurs y existantes.
- Déplacer la série des valeurs obtenues une colonne à droite puis tirer vers le haut.

2 - Méthode par formule :

- Dans la plage D2😀11 écrire la formule suivante : = TENDANCE($B$2:$B$11;$A$2:$A$11). Cette formule est matricielle et doit être activée par Ctrl + Maj + Entrée.
Pour connaître les valeurs suivantes ici en D12 pour le 11 ème mois, écrire la formule suivante : =TENDANCE($B$2:$B$11;$A$2:$A$11;A12), formule non matricielle.

3- Méthode par VBA :

- Par VBA les résultats matriciels obtenus précédemment par formule sont obtenus par la macro lancée par le bouton TENDANCE LINEAIRE et les valeurs suivantes en fonction du nombre de mois souhaités en cellule M1 par le bouton TENDANCES SUIVANTES .

Ce ne sont que des possibilités à adapter à ton projet !
 

Pièces jointes

Re : Courbe de tendance VBA

Bonjour,
Je suis tout à fait débutante en VBA et je dois faire un programme pour les cours, le problème à l'air de ressembler à celui poser au dessus. J'espère que vous pourrez m'aider.

Le principe du programme est de récupérer une plage de donner d'une feuille de calcul et d'un faire un diagramme nuage de point. Jusque la je me débrouille, l'ennuis c'est quand j'essaie de tracer une courbe de tendance et d'afficher l'équation sur le graphique.
La courbe apparait quand elle veut et excel ne comprend pas mon instruction d'affichage d'équation.

Je vous donne un extrait ce que j'ai fait :


ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlXYScatter
ActiveChart.SetSourceData Source:=objRange
Worksheets("Poutre console").ChartObjects(1).Chart.SeriesCollection(1).Trendlines.Add Type:=xlLinear

ActiveChart.HasTitle = True
ActiveChart.ChartTitle.Text = "Force appliqée en fonction du déplacement"

ActiveChart.SeriesCollection(1).Trendlines(1).DisplayEquation = True

ActiveChart.ApplyLayout (1)


Merci d'avance si vous avez des idées !
 
Re : Courbe de tendance VBA

Bonsoir Chool,

Je ne vous avais pas oubliée.

Comme je le disais ce n'est pas très compliqué, et voici une solution bien simple :

Code:
Sub CourbeTendance(serie As Object)
Dim tend
tend = MsgBox("Pour une tendance linéaire cliquez sur Oui" _
& Chr(10) & "Pour une tendance polynomiale cliquez sur Non", 4, "Courbe de tendance")
tend = IIf(tend = 6, xlLinear, xlPolynomial)
serie.Trendlines.Add Type:=tend, DisplayEquation:=1
End Sub
Cette petite macro est appelée par la macro principale ou par toute autre macro de votre projet.

Il vous reste un peu de travail pour que le graphe soit présentable.

Bonne nuit.

Edit : j'ajoute le classeur en .xls.

La macro principale a été un peu modifiée afin de fonctionner sous Excel 2003.
 

Pièces jointes

Dernière édition:
Re : Courbe de tendance VBA

Bonjour Chool, le forum,

Pour peaufiner, on peut faire préciser l'ordre de la tendance polynomiale :

Code:
Sub CourbeTendance(serie As Object)
Dim tend As Byte, ordre As Variant
tend = MsgBox("Pour une tendance linéaire cliquez sur Oui" & Chr(10) & _
  "Pour une tendance polynomiale cliquez sur Non", 3, "Courbe de tendance")
If tend = 6 Then serie.Trendlines.Add Type:=xlLinear, DisplayEquation:=1
If tend = 7 Then
  ordre = Val(InputBox("Entrer un nombre entre 2 et 6 :", "Ordre du polynome de tendance"))
  If ordre < 2 Or ordre > 6 Then ordre = 2
  serie.Trendlines.Add Type:=xlPolynomial, Order:=ordre, DisplayEquation:=1
End If
End Sub
Avec la macro précédente l'ordre était 2 par défaut.

Edit : ordre défini As Variant pour éviter tout bug (nombre négatif...)

A+
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Réponses
7
Affichages
186
Retour