Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1743 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  macro Excel VBA : Création automatique de 140 graphiques

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

macro Excel VBA : Création automatique de 140 graphiques

n°1513154
techneric
Posté le 11-02-2007 à 11:12:11  profilanswer
 

Bonjour,
 
Je souhaite générer au moins 140 graphes sur l'évolution sur 1 an de
mes données.
Toutefois, j'ai un bug car si j'imagine que toutes mes données sont
sur un fichier et que sur 140 lignes, je créée mes graphes, mon
incrémentation ne marche pas, si je n'ai pas de variable et que je
créée 140 fois le même graphe, ça marche, mais, pour des lignes
différentes, rien, les 140 graphes sont sans courbe, donc, je n'ai pas
su écrire mon incrémentation, un truc que je cherche encore et que je
ne sais pas, donc, si quelqu'un connait mon erreur et vu que je
travaille surtout le soir là-dessus, ça me permettrait d'avancer,
merci !
 
 
 
J'ai compté que ma macro fonctionnera sur 140 courbes à exécuter
automatiquement, ce qui est gros.
 
J'ai 1 seul bug qui est que ma ligne d'incrémentation, VBA ne la
comprend pas :
 
Si je créée 5 fois la même courbe, ça marche, mais, si je veux prendre
en compte chaque ligne avec ses données, il crée 5 tableaux vides,
donc, il ne comprend pas ce que j'ai écrit, c'est bien écrit, mais
non, donc, je cherche une autre solution ou où est mon erreur ?
 
 
 
Ceci ne marche pas :
 
lignier1 = Chr(34) & "=" & "(tableau!R" & i & "C3," & "tableau!R"
& i & "C4," _
& "tableau!R" & i & "C6," & "tableau!R" & i & "C8," & "tableau!R"
& i & "C10)" & Chr(34)
 
ActiveChart.SeriesCollection(1).Values = lignier1
 
 
 
dans uen cellule, j'ai écrit ce que ça donne :
 
"=(tableau!R2C3,tableau!R2C4,tableau!R2C6,tableau!R2C8,tableau!R2C10)"
 
de 2 à 5 comme prévu et il ne me donne aucune courbe ?
 
 
 
J'ai essayé une autre méthode, mais ,j'ai là aussi un problème
d'incrémentation.
 
 
 
Merci.
 
 
 
 
 
Sub courbes()
'
' courbes Macro
' Macro enregistrée le 10/02/2007 par pc2
'
'
' version2 Macro
' Macro enregistrée le 09/02/2007 par eric31
'
 
'maxlig = Range("B65535" ).End(xlUp).Row
maxlign = 5
 
 
For i = 2 To maxlign
 
Sheets("tableau" ).Select
Charts.Add
'ActiveChart.ApplyCustomType ChartType:=xlBuiltIn, TypeName:= _
"Courbes"
ActiveChart.ChartType = xlLine
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = _
"=(tableau!R1C3,tableau!R1C4,tableau!R1C6,tableau!R1C8,tableau!
R1C10)"
 
lignier1 = Chr(34) & "=" & "(tableau!R" & i & "C3," & "tableau!R"
& i & "C4," _
& "tableau!R" & i & "C6," & "tableau!R" & i & "C8," & "tableau!R"
& i & "C10)" & Chr(34)
 
ActiveChart.SeriesCollection(1).Values = lignier1
 
'voir ActiveChart.SeriesCollection(1).Values = _
"=(tableau!R2C3,tableau!R2C4,tableau!R2C6,tableau!R2C8,tableau!
R2C10)"
'"=(tableau!R2C3,tableau!R2C4,tableau!R2C6,tableau!R2C8,tableau!
R2C10)"
 
ActiveChart.SeriesCollection(1).Name = "=""1ereserie"""
 
'lignier2 = Chr(34) & "=" & "(tableau!R" & i & "C5," & "tableau!R"
& i & "C7," _
& "tableau!R" & i & "C9," & "tableau!R" & i & "C11,"
& "tableau!R" & i & "C13)" & Chr(34)
 
'ActiveChart.SeriesCollection(2).Values = lignier2
 
'ActiveChart.SeriesCollection(2).Values = _
"=(tableau!R(i)C5,tableau!R(i)C7,tableau!R(i)C9,tableau!R(i)
C11,tableau!R(i)C13)"
'tableau!R8C3,tableau!R8C4,tableau!R8C6,tableau!R8C8,tableau!
R8C10
 
'ActiveChart.SeriesCollection(2).Name = "=""2emeserie"""
ActiveChart.Location Where:=xlLocationAsObject, Name:="graphmaison"
 
'ActiveChart.Axes(xlCategory).Select
ActiveChart.PlotArea.Select
ActiveChart.ChartType = xlLine
'ActiveChart.ApplyCustomType ChartType:=xlBuiltIn, TypeName:= _
"Courbes" '"Courbes à deux axes"
 
With ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
'.Axes(xlCategory, xlSecondary).HasTitle = False
'.Axes(xlValue, xlSecondary).HasTitle = False
End With
Sheets("graphmaison" ).Cells(i, 1) = lignier1
 
Sheets("tableau" ).Select
 
Next
'
 
 
'
ActiveSheet.Shapes.AddTextEffect
(msoTextEffect11, "courbes", "Impact", 20#, _
msoFalse, msoFalse, 249#, 147#).Select
Selection.ShapeRange.IncrementLeft 208.5
Selection.ShapeRange.IncrementTop -30.75
Range("H15" ).Select
End Sub

mood
Publicité
Posté le 11-02-2007 à 11:12:11  profilanswer
 

n°1513177
galopin01
Posté le 11-02-2007 à 12:02:11  profilanswer
 

bonjour,
un peu au hasard mais je le sens pas ton Chr(34)
lignier1 = Chr(34) & "=" & "(tableau!R" & i & "C3," &...
Je le verrais mieux comme ça  :
lignier1 = "=(tableau!R" & i & "C3," & ...
ça devrait le faire...
A+

n°1513180
techneric
Posté le 11-02-2007 à 12:13:48  profilanswer
 

Oui, le Chr(34), c'était pour le ", mais je vais tester cette solution, merci.

n°1513183
techneric
Posté le 11-02-2007 à 12:29:25  profilanswer
 

Merci, en revanche, j'ai un avancé, car je pense que c'est Chr(34) qui ne me done pas " comme je veux, j'ai remplacé le tout par ceci :
    lignier1 = "=(tableau!R" & i & "C3," & "tableau!R" & i & "C4," _
     & "tableau!R" & i & "C6," & "tableau!R" & i & "C8," & "tableau!R" & i & "C10)"
là, ça marche, j'ai mes courbes, c'est déjà bien, sauf que ce que je n'ai pas compris, c'est que si j'écrit ce que celà donne, Excel ne comprends pas ce contenu, j'ai #VALEUR! mais bon, tant pis, j'ai au moins mes courbes ! Le bug, en revanche et que je voudrai supprimer, c'est que la macro me créée un double du bouton de lancement de la macro, chaque fois que j'appuie sur le bouton macro, le bouton est dupliqué autant de fois que je clique sur ma feuille tableau ?
Est-ce que quelqu'un connait ce bug ?
Merci.

n°1513188
galopin01
Posté le 11-02-2007 à 12:50:11  profilanswer
 

Bonjour,
Pour ce genre de truc un fichier joint est inévitable.  
Tu supprimes toutes les feuilles qui ne sont pas indispensables,
Tu sopprimes <135 lignes sur les 140 et tu nous donnes un fichier assez semblables à ce que travailles.  
Tu ne gardes que le code nécessaire et le bouton en question...
Parce que si en plus on doit simmuler un classeur qui ressemble au tien -erreurs incluses- on y arrivera jamais !
A+


Message édité par galopin01 le 11-02-2007 à 12:51:46

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  macro Excel VBA : Création automatique de 140 graphiques

 

Sujets relatifs
Creation lecteur videoPassages C++/VBA en XLL/COM Questions
création d'espace membre[Résolu] [Batch] Création d'un dossier à l'ouverture de Windows
Creation guidée de site internetModifier un fichier excel et l'enregistrer dans un autre repertoire
[résolu]Problème avec ExecuteExcel4Macro....MACRO rechercher la valeur max dans une colonne ?
Excel -> Word : Problème de saut de ligne/page lors d'une fusionpb de recherche de fichier sous VBA
Plus de sujets relatifs à : macro Excel VBA : Création automatique de 140 graphiques


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR