Guilhaume11
Messages postés1Date d'inscriptionjeudi 26 avril 2012StatutMembreDernière intervention26 avril 2012
-
26 avril 2012 à 10:48
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 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.
A voir également:
Tracer plusieurs courbes sur un même graphe python
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 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