begin process at 2010 02 10 03:08:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBA

 > 

des courbes en série


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

des courbes en série

vendredi 1 août 2008 à 15:33:33 | des courbes en série

roievil

Bonjour,

voici mon problème:
j'ai une feuille excel2003 avec des données présentées comme suit :

espece200520062007
mus musculus12,56,37,2
rattus norvegicus
15,67,2
caenorabditis elegans38,92

mais avec beaucoup plus de lignes que collé ici (112), je voudrais mettre au point une macro qui pour chaque ligne de ce tableau me construise une courbe...

voici la macro que j'ai construite avec l'assistant de excel pour faire UNE courbe:

Sub Macro3()
'
' Macro3 Macro
' Macro enregistrée le 01/08/2008 par Olivier Glorieux
'

'
    ActiveCell.Offset(0, -3).Range("A1:C1").Select
    Charts.Add
    ActiveChart.ChartType = xlLine
    ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("B2:D2"), PlotBy:= _
        xlRows
    ActiveChart.SeriesCollection(1).XValues = "=Feuil1!R1C2:R1C4"
    ActiveChart.SeriesCollection(1).Name = "=Feuil1!R2C1"
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
    With ActiveChart
        .HasTitle = True
        .ChartTitle.Characters.Text = "mus musculus"
        .Axes(xlCategory, xlPrimary).HasTitle = False
        .Axes(xlValue, xlPrimary).HasTitle = False
    End With
End Sub

je ne sais pas comment faire pour parcourir mon tableau et appliquer ce bout de code à chaque ligne, qu'en pensez vous?

Autre chose:
Est ce un probleme si toutes les courbes (112) appartiennent au final à la même cellule?

merci beaucoup,

Olivier
lundi 4 août 2008 à 17:18:16 | Re : des courbes en série

roievil

re :

Vous êtes tous à la plage, ou ça n'inspire personne? :-)

Olivier
jeudi 7 août 2008 à 13:54:52 | Re : des courbes en série

dezbut

Tu parcours ton tableau avec un :
For i= "la première ligne du tableau" to "la dernière ligne du tableau step 1

"ton code"

end for

Après il faut adapter les noms de plages ^^ de cellule mais il nous faut plus d'info.

L'espèce est dans la cellule A1 ?
2005, 2006, 2007 respectivement dans les colonnes B,C et D ?
jeudi 7 août 2008 à 14:10:30 | Re : des courbes en série

roievil

Oui c'est cela, là ce serait des cellules de 'A1' à 'D4'

mais je ne sais pas comment on dit : la première ligne du tableau...

Merci,

Olivier
jeudi 7 août 2008 à 14:23:00 | Re : des courbes en série

dezbut

la première ligne = rows(1)

Bon, je ne comprend pas cette ligne :  
ActiveCell.Offset(0, -3).Range("A1:C1").Select
Pourquoi A1:C1 ? tu ne faisais que les graphes sur 2005 et 2006 ?
(en fait après reflexion, je pense qu'il faut enmever cette ligne...)

Ca doit être un truc dans ce genre là...

option base 1

sub graph()
For i=2 to 112 step 1

Charts.Add
    ActiveChart.ChartType = xlLine
    ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range(Cells(i,2),cells(i,4)), plotBy:= _xlRows ' 4 = numéro de la dernière colonne de données
    ActiveChart.SeriesCollection(i-1).XValues = Sheets("Feuil1").Range(Cells(i,2),cells(i,4))
    ActiveChart.SeriesCollection(i-1).Name = cells(i,1)
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
    With ActiveChart
        .HasTitle = True
        .ChartTitle.Characters.Text = cells(i,1).text
        .Axes(xlCategory, xlPrimary).HasTitle = False
        .Axes(xlValue, xlPrimary).HasTitle = False
    End With
next i
end sub
vendredi 8 août 2008 à 10:52:19 | Re : des courbes en série

roievil

Hello,

alors ça ne marche pas encore, voici le code que j'ai dans ma macro :

Sub Macro3()

For i = 2 To 112 Step 1


    Charts.Add
    ActiveChart.ChartType = xlLine
    ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range(Cells(i, 2), Cells(i, 4)), PlotBy:= _
        xlRows
ActiveChart.SeriesCollection(i - 1).XValues = Sheets("Feuil1").Range(Cells(i, 2), Cells(i, 4))
    ActiveChart.SeriesCollection(i - 1).Name = Cells(i, 1)
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
    With ActiveChart
        .HasTitle = True
        .ChartTitle.Characters.Text = Cells(i, 1).Text
        .Axes(xlCategory, xlPrimary).HasTitle = False
        .Axes(xlValue, xlPrimary).HasTitle = False
    End With
Next i
End Sub


et voici le message d'erreur : la methode Cells de l'objet _Global a échoué

tu en penses quoi?

Olivier
vendredi 8 août 2008 à 11:32:30 | Re : des courbes en série

dezbut

Bonjour

Essaye ça :

For i = 2 To 112 Step 1


    Charts.Add
    ActiveChart.ChartType = xlLine
    ActiveChart.SetSourceData Source:=Range(Sheets("Feuil1").Cells(i, 2), Sheets("Feuil1").Cells(i, 4)), PlotBy:=xlRows
ActiveChart.SeriesCollection(1).XValues = Range(Sheets("Feuil1").Cells(i, 2), Sheets("Feuil1").Cells(i, 4))
    
    ActiveChart.SeriesCollection(1).Name = Sheets("Feuil1").Cells(i, 1)
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
    With ActiveChart
        .HasTitle = True
        .ChartTitle.Characters.Text = Sheets("Feuil1").Cells(i, 1).Text
        .Axes(xlCategory, xlPrimary).HasTitle = False
        .Axes(xlValue, xlPrimary).HasTitle = False
    End With
Next i
vendredi 8 août 2008 à 11:55:30 | Re : des courbes en série

roievil

PARFAIT !

merci beaucoup !

Olivier


Cette discussion est classée dans : macro, courbes, activechart, feuil1, hastitle


Répondre à ce message

Sujets en rapport avec ce message

graphe [ par driss ] Je dois faire un graphe qui contient un nombre de courbes dynamique, donc a chaque fois que je dois actualiser le graphe, la macro doit d'abord efface comment incrementer une plage en VBA? [ par stef ] bonjour,c'est l'histoire d'un mec qu'a 1 pb:débutant VBA, je cherche sur excel à creer autant de graph que j'ai de ligne de donnée, mais je ne trouve c'est possible : incrementer un plage en VBA ? [ par stef ] bonjour,c'est l'histoire d'un mec qu'a 1 pb:débutant VBA, je cherche sur excel à creer autant de graph que j'ai de ligne de donnée, mais je ne trouve Argh ! Series sous Excel [ par pystag ] Salut!Sous VB .NET, je réalise une feuille EXCEL et je veux y créer un graphique comportant des séries...Je me suis inspiré d'une macro mais j'ai une choisir plusieurs plages avec SetSourceData:= [ par matsony ] J'ai un graphique par lequel je souhaite représenter plusieurs lignes de données. Précision : Le graphique est piloté d'un module access. Comment fair Macro sous Excel [ par cindaille ] BonjourJ'ai un graphique que je veux mettre à jour.Grâce à une macro, j'efface les données précédentes du graphe et je rentre les nouvelles données.Mo Débutant Macro [ par Elnono94 ] Bonjour, Dans feuil1 , j’aimerais couper les lignes qui contiennent le mot INTERNA dans la colonne B Puis les coller dans la feuil2 à la suite de ce q pb HasTitle [ par sobullshit ] Bonjour,Après le InitDir du CommonDialog qui ne veut pas fonctionner (mais là n'est pas le sujet), je me trouve confronté à un bug de la commande .Has problème d'exécution d'une macro [ par dubouch ] Boujour à tous.Je suis débutant.un extrait de macro simple sous Excel  pour copier une feuille et changer son nom .     Sheets("Feuil1").Copy Before Macro excel [ par Heffgy ] Je n'arrive pas à trouver le bon code WBA pour écrire une macro sur excel.Par exemple, j'ai un tableau sur la feuil1 avec une colonne A dans laquelle


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales