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 :

afficher un nombre variable de courbes sur un même graphe (VBA)


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2017
    Messages : 38
    Par défaut afficher un nombre variable de courbes sur un même graphe (VBA)
    Bonjour à tous !

    Voila je viens vers vous car je bloque sur un programme.
    Le but de ce dernier est de tracer une courbe de puissance ( à partir d'une colonne de vitesse de vent et d'une colonne de puissance ).
    Ca je sais faire , seulement voila j'aimerai ,en rajoutant des feuilles, que mon programme trace sur le meme graphe les autres courbes de puissances.
    Pour l'instant j'ai un code qui fonctionne pour deux feuilles mais je vais être amené à en étudier plusieurs et modifier le code à chaque fois que le nombre varie devient fastidieux... j'ai cherché des solutions sur d'autre forum mais je n'ai pas trouvé ...

    voici un bout de mon programme
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     
     
    Sub PFversion2()
     
    'initialisation
     
    Dim Sh As Worksheet
    Dim Sh2 As Worksheet
    Dim DernLigne As Long
    Dim moyenne As Single
    Dim somme As Single
    Dim compt As Single
     
     
    retour = MsgBox(prompt:="tracer la courbe sur le graphe precedent ?", Buttons:=vbYesNo)
    reponse = InputBox(prompt:="quelle feuille étudier ?")
    rep2 = InputBox(prompt:="tracer le graphique sur quelle feuille ?")
     
     
    DernLigne = Range("A" & Rows.Count).End(xlUp).Row
     
     
    Set Sh = Sheets(reponse)
    Set Sh2 = Sheets(rep2)
     
     
    If retour = vbNo Then 'si on ne veut pas tracer notre courbe sur un graphique deja existant
     
    Dernligne3 = Range("A" & Rows.Count).End(xlUp).Row
    Range("Z2").Select
     
     
    Sh.Shapes.AddChart.Select
     
     
     
    With ActiveChart
            .HasTitle = True
            .ChartTitle.Characters.Text = "courbe de puissance "
            .SeriesCollection.NewSeries
            .SeriesCollection(1).XValues = ActiveSheet.Range("A2:A" & Dernligne3).Value
            .SeriesCollection(1).Values = ActiveSheet.Range("C2:C" & Dernligne3).Value
            .ChartType = xlXYScatter
            .SeriesCollection(1).MarkerSize = 2
            .ChartArea.Copy
        End With
     
    'on copie le graphique dans une nouvelle feuille
     
     
        Sh2.Select
        Range("C4").Select
        ActiveSheet.Paste
     
    End If
     
    If retour = vbYes Then 'on desire tracer la courbe sur un graphe deja existant
     
     
     
    Dernligne3 = Range("A" & Rows.Count).End(xlUp).Row
    Range("Z2").Select
     
     
    Sh2.Activate
    Sh2.ChartObjects(1).Activate
     
    With ActiveChart
            .SeriesCollection.NewSeries
            .SeriesCollection(2).XValues = Sh.Range("A2:A" & Dernligne3).Value
            .SeriesCollection(2).Values = Sh.Range("C2:C" & Dernligne3).Value
            .ChartType = xlXYScatter
            .SeriesCollection(2).MarkerSize = 2
    End With
     
     
    End If
     
    End Sub
    Pourriez vous m'aider svp ? (la je commence à craquer )

    Merci par avance

  2. #2
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,
    je te propose de mettre en commentaire tout ce qui concerne les questions,
    et de lancer le code sur un des graph

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2017
    Messages : 38
    Par défaut
    Bonjour mjpmjp ,
    J'ai finalement trouvé la réponse à ma question devant mon bol de céréale ce matin :
    il suffit d'ajouter une InputBox demandant à l'utilisateur cb de courbes ont déjà été tracé sur le même graphique et remplacer par le code suivant :
    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
     
     
    If retour = vbYes Then 'on desire tracer la courbe sur un graphe deja existant
     
    nb_courbe = InputBox(prompt:="combien de courbes ont deja été tracé sur ce graphique ?")
     
    nb = nb_courbe + 1
    Dernligne3 = Range("A" & Rows.Count).End(xlUp).Row
    Range("Z2").Select
     
     
    Sh2.Activate
    Sh2.ChartObjects(1).Activate
     
    With ActiveChart
            .SeriesCollection.NewSeries
            .SeriesCollection(nb).XValues = Sh.Range("A2:A" & Dernligne3).Value
            .SeriesCollection(nb).Values = Sh.Range("C2:C" & Dernligne3).Value
            .ChartType = xlXYScatter
            .SeriesCollection(nb).MarkerSize = 2
    End With
    Si jamais quelqu'un est intéressé par le code complet me demander par MP

    Bonne journée !

  4. #4
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,

    je note également :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    .SeriesCollection(1).XValues = ActiveSheet.Range("A2:A" & Dernligne3).Value
    
    et --> modif
    
    .SeriesCollection(nb).XValues =Sh.Range("A2:A" & Dernligne3).Value
    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tracer plusieurs courbes sur le même graphe
    Par T-MAT dans le forum MATLAB
    Réponses: 6
    Dernier message: 31/12/2011, 18h32
  2. [2K8] 2 courbes sur un même graphe
    Par Wishmaster69 dans le forum SSRS
    Réponses: 7
    Dernier message: 02/08/2010, 17h26
  3. Réponses: 2
    Dernier message: 16/07/2008, 14h21
  4. Réponses: 1
    Dernier message: 14/07/2007, 14h19
  5. Réponses: 2
    Dernier message: 07/06/2007, 12h49

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