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 :

Ajouter une courbe de tendance sur des portions linéaires différentes


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
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 8
    Par défaut Ajouter une courbe de tendance sur des portions linéaires différentes
    Bonjour le forum !

    Je me heurte à un problème pour créer une macro : je souhaite tracer une courbe de tendance pour chaque graphique que j'ai tracé (vous me direz jusque là, où est le soucis ?).
    Le problème c'est que pour chaque graphique la portion linéaire n'est pas la même ( je m'explique: par exemple pour le graphe 1 la portion sera linéaire du point 7 au point 15 et pour le graphe 2, du point 9 au point 18, etc....).
    Par conséquent, par exemple pour 10 graphes, j'aimerai que le code me trouve à partir de quelle point il faut commencer à tracer la courbe de tendance et jusqu'à quel point, elle doit finir (pour chaque graphe).
    Après peut être que ce n'est pas réalisable. J'ai regardé d'autres forums ou discussions mais je n'ai pas trouvé mon bonheur
    Du coup je viens solliciter votre aide

    Pour l'instant mon code à cette tête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Sub Youngmodulus()
    '
    ' Youngmodulus Macro
    '
    File = Dir("C:\blabla\*.xlsx")
    '
    'Files''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Do While File <> ""
    Set wbsource = Workbooks.Open("C:\blabla\" & File)
        Range("D1:E67").Select
        Selection.Copy
        Workbooks.Add
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    '
    'Graph''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        Range("D5").Select
        ActiveSheet.Shapes.AddChart.Select
        ActiveChart.ChartType = xlXYScatterSmooth
        ActiveChart.SeriesCollection.NewSeries
        ActiveChart.SeriesCollection(1).Name = "=""StressVsStrain"""
        ActiveChart.SeriesCollection(1).XValues = "='Feuil1'!$B$3:$B$68"
        ActiveChart.SeriesCollection(1).Values = "='Feuil1'!$A$3:$A$68"
        ActiveChart.SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis)
        ActiveChart.Axes(xlCategory, xlPrimary).AxisTitle.Text = "Strain (-)"
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.SetElement (msoElementPrimaryValueAxisTitleRotated)
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Text = "Stress (N/mm2)"
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.SeriesCollection(1).Trendlines.Add
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.SeriesCollection(1).Trendlines(1).Select
        Selection.DisplayEquation = True
        Selection.DisplayRSquared = True
        ActiveSheet.ChartObjects("Graphique 1").Activate
     
        File = Dir
        Loop
    End Sub
    Cordialement,

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 8
    Par défaut
    ReBonjour le forum !

    Je précise que bien entendu je ne veux pas qu'on me fasse le code de A à Z, juste qu'on me donne des axes de recherche que je pourrai exploiter pour m'aider (le but étant que je progresse bien évidemment sur les macros).
    Merci par avance pour votre aide.

    Cordialement,

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Je ne suis pas sûr d'avoir compris précisément ton problème mais, à priori, il faudrait plutôt travailler sur les données sources que sur les graphs.

    Il faut que tu scrutes les points un par un avec une boucle.
    Pour chaque point N, tu calcules l'équation de la droite qu'il matérialise avec le point suivant (N+1) et tu vérifies si le point N+2 est sur cette droite.
    Si c'est le cas, tu peux dire que ta portion linéaire commence à ce point N.

    Ensuite, tu vérifies les points suivants jusqu'à ce que l'un ne corresponde plus à l'équation de la droite.
    Le point précédent sera la fin de la portion linéaire.

    Cela dit, si tes points sont issus de mesures, il est probable que la linéarité de ta portion droite ne sera pas parfaite.
    Il faudra donc prévoir un intervalle de tolérance dont il faudra estimer la valeur.

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 8
    Par défaut
    Bonjour merci pour ta réponse !

    Nan nan, tu as très bien compris le problème et effectivement mes résultats sont issus de mesure donc la linéarité n'est pas parfaite. Mhmhm oui je vois ce que tu veux dire mais j'avais déjà essayé une première fois et ça n'a pas été concluant. Certaines courbes descendaient, remontaient puis redescendaient donc avec cette méthode ça n'allait pas. Du coup je l'ai mise de côté.

Discussions similaires

  1. Courbe de tendance sur des données
    Par Moutonne dans le forum MATLAB
    Réponses: 1
    Dernier message: 18/06/2011, 03h09
  2. ajouter une courbe sur un graphique issu d'un pivot table
    Par dirty_harry dans le forum Excel
    Réponses: 7
    Dernier message: 12/10/2009, 16h20
  3. [OpenOffice][Tableur] Courbe de tendance sur une partie d'une courbe
    Par sloyvy dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 29/10/2008, 18h20
  4. [VBA-E] recuperation de l'equation d'une courbe de tendance
    Par miotte83 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/09/2005, 02h25
  5. Ajouter une icone dans la barre des titres (cme emule)
    Par Crisanar dans le forum Windows
    Réponses: 7
    Dernier message: 12/12/2004, 13h08

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