Tracé plusieurs courbes dans un même graphe

Guilhaume11 Messages postés 1 Date d'inscription jeudi 26 avril 2012 Statut Membre Dernière intervention 26 avril 2012 - 26 avril 2012 à 10:48
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 27 avril 2012 à 21:52
Bonjour,

Mon problème est d'arriver à faire une macro qui "scan" ma feuille excel et qui trace plusieurs courbes en fonction des données situées dans différentes colonnes.

Dans un premier temps j'ai réussi à délimiter l'intervalle de lignes dans lesquelles se trouvent les futures valeurs de mes courbes :



cle2 = "Angle"
z = 6
i = 1


While Sheets("feuille").Cells(i, z).Value <> cle2
        
        i = i + 1
     
Wend
    
        j = i + 1
While Sheets("feuille").Cells(j, z).Value <> ""
    
        j = j + 1
Wend
    


Puis je demande de regarder dans toutes les colonnes si il trouve un motif, et à partir de ce motif tracer une courbe :
toto = 1

For y = 1 To 6
Dim plageX As Range, plageP As Range



If Sheets("feuille").Cells(3, y).Value = cle2 Then
    
   Set plageX = Range(Cells(i, y), Cells(j, y))
   Set plageP = Range(Cells(i, y + 1), Cells(j, y + 1))
    
    Charts.Add
    ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
    ActiveChart.SetSourceData Source:=Sheets("feuille").Range("D8")
    ActiveChart.SeriesCollection.NewSeries
    ActiveChart.SeriesCollection(toto).XValues = plageX
    ActiveChart.SeriesCollection(toto).Values = plageP
    ActiveChart.SeriesCollection(toto).Name = Sheets("feuille").Cells(2, y)
    ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="diagrammes"
    With ActiveChart
        .HasTitle = False
        .Axes(xlCategory, xlPrimary).HasTitle = True
        .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "2 theta (°)"
        .Axes(xlValue, xlPrimary).HasTitle = True
        .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "I (cps)"
    End With

toto = toto + 1

'Set plageX = Nothing
'Set plageP = Nothing

End If


Next y


Pour des valeurs y de 1 à 6 je n'ai que seule fois le motif cle2, j'arrive donc à tracer ma courbe.

Ce que je n'arrive pas à faire, c'est demandé à scanner d'autres colonnes (y de 1 à 20 par exemple), de trouver le motif cle2 (qui se retrouve régulièrement), et de tracer une courbe pour chaque motif cle2 trouvé (incrémentation de la variable toto?)
Les valeurs pour tracer mes courbes sont toujours situées entre les lignes i et j dans les colonnes comprenant le motif cle2 (y) et la suivante (y + 1).

J'espère avoir été clair...je peux envoyer mon fichier avec les valeurs si nécessaire.

1 réponse

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
27 avril 2012 à 21:52
Bonjour,

As-tu essayer de le faire "à la main" et de voir la macro générée pas Excel ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
Rejoignez-nous