Publicité
Offres partenaires
Actualités relatives

Des précisions sur Office 2007

Publié le 17 février 2006

Alors que Microsoft vient de donner le coup d’envoi de la bêta d’Office Live, il donne aussi quelques précisions concernant la future suite bureautique qui devrait apporter de grands changements selon Microsoft Office 2007. Lire la suite

Tout savoir sur les plateformes de création de blog

Publié le 03 avril 2007

Nos collègues du site d’Infos-du-Net viennent de publier un article sur les plateformes de création de Blog «  Infos-du-Net vous propose de découvrir les meilleures plateformes de création de blogs. A travers son dernier dossier, le site vous expli ... Lire la suite

Nouvel objectif macro à réduction de vibrations Nikon

Publié le 23 février 2006

Nikon vient d’annoncer par la voie d’un communiqué de presse la mise sur le marché d’un objectif macro qui a la particularité de disposer d’un système de réduction des vibrations (VR II). L&rsqu Lire la suite

Trois failles dans Excel

Publié le 07 juillet 2006

Une équipe de chercheurs français vient de trouver trois failles de sécurité dans le logiciel de tableur de Microsoft : Excel. Résultant d’une corruption de la mémoire lorsque l’utilisateur charge en r Lire la suite

Les derniers tests

Les téléphones tactiles peuvent-ils remplacer les PC ?

Publié le 24 octobre 2008

Les téléphones tactiles sont-ils capables de rivaliser avec les PC ? Lire la suite

Test du Shuttle X27 : l’Atom sous Vista ?

Publié le 23 octobre 2008

Dans la course à la puissance à laquelle se livrent Intel et AMD, l’Atom est une sorte d’outsider. C’est pourtant lui que Shuttle a choisi pour son ordinateur petit format. Mais est-il assez puissant pour une utilisation au quotidien ? Lire la suite

Test Sony Vaio TT et Z : Tom's Guide raconte

Publié le 22 octobre 2008

Avant même leurs sorties, les Vaio TT et Vaio Z de Sony sont passés entre les mains de Tom's Guide pour une première impression sur la finition et les capacités techniques des deux machines. Lire la suite

Les meilleurs logiciels pour l'overclocking

Publié le 20 octobre 2008

Les overclockeurs n'en sont plus aux jumpers sur la carte mère, maintenant ils utilisent des logiciels. Lire la suite

  FORUM Tom's Hardware » Programmation » VB / VBA / VBS » macro Excel VBA : Création automatique de 140 graphiques
 

macro Excel VBA : Création automatique de 140 graphiques

Il y a 202 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : macro Excel VBA : Création automatique de 140 graphiques
 
Plus d'informations

Bonjour,


Je souhaite générer au moins 140 graphes sur l'évolution sur 1 an de
mes données. Cependant, ce nombre peut varier, je souhaite donc tout automatiser.
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

Liens sponsorisés

Profil : Pointeur
Plus d'informations

balise [code]

Plus d'informations

Bonjour, je fais comment pour mettre cettte balise code ?

Profil : Pointeur
Plus d'informations

http://site.voila.fr/zulu-echo-bravo/img/balisecodeppc.png

Plus d'informations

Ok, merci, voici donc le code source :

Code :
  1. Sub courbes()
  2. '
  3. ' courbes Macro
  4. ' Macro enregistrée le 10/02/2007 par pc2
  5. '
  6. '
  7. ' version2 Macro
  8. ' Macro enregistrée le 09/02/2007 par eric31
  9. '
  10. 'maxlig = Range("B65535" ).End(xlUp).Row
  11. maxlign = 5
  12. For i = 2 To maxlign
  13. Sheets("tableau" ).Select
  14. Charts.Add
  15. 'ActiveChart.ApplyCustomType ChartType:=xlBuiltIn, TypeName:= _
  16. "Courbes"
  17. ActiveChart.ChartType = xlLine
  18. ActiveChart.SeriesCollection.NewSeries
  19. ActiveChart.SeriesCollection(1).XValues = _
  20. "=(tableau!R1C3,tableau!R1C4,tableau!R1C6,tableau!R1C8,tableau!
  21. R1C10)"
  22. lignier1 = Chr(34) & "=" & "(tableau!R" & i & "C3," & "tableau!R"
  23. & i & "C4," _
  24. & "tableau!R" & i & "C6," & "tableau!R" & i & "C8," & "tableau!R"
  25. & i & "C10)" & Chr(34)
  26. ActiveChart.SeriesCollection(1).Values = lignier1
  27. 'voir ActiveChart.SeriesCollection(1).Values = _
  28. "=(tableau!R2C3,tableau!R2C4,tableau!R2C6,tableau!R2C8,tableau!
  29. R2C10)"
  30. '"=(tableau!R2C3,tableau!R2C4,tableau!R2C6,tableau!R2C8,tableau!
  31. R2C10)"
  32. ActiveChart.SeriesCollection(1).Name = "=""1ereserie"""
  33. 'lignier2 = Chr(34) & "=" & "(tableau!R" & i & "C5," & "tableau!R"
  34. & i & "C7," _
  35. & "tableau!R" & i & "C9," & "tableau!R" & i & "C11,"
  36. & "tableau!R" & i & "C13)" & Chr(34)
  37. 'ActiveChart.SeriesCollection(2).Values = lignier2
  38. 'ActiveChart.SeriesCollection(2).Values = _
  39. "=(tableau!R(i)C5,tableau!R(i)C7,tableau!R(i)C9,tableau!R(i)
  40. C11,tableau!R(i)C13)"
  41. 'tableau!R8C3,tableau!R8C4,tableau!R8C6,tableau!R8C8,tableau!
  42. R8C10
  43. 'ActiveChart.SeriesCollection(2).Name = "=""2emeserie"""
  44. ActiveChart.Location Where:=xlLocationAsObject, Name:="graphmaison"
  45. 'ActiveChart.Axes(xlCategory).Select
  46. ActiveChart.PlotArea.Select
  47. ActiveChart.ChartType = xlLine
  48. 'ActiveChart.ApplyCustomType ChartType:=xlBuiltIn, TypeName:= _
  49. "Courbes" '"Courbes à deux axes"
  50. With ActiveChart
  51. .HasTitle = False
  52. .Axes(xlCategory, xlPrimary).HasTitle = False
  53. .Axes(xlValue, xlPrimary).HasTitle = False
  54. '.Axes(xlCategory, xlSecondary).HasTitle = False
  55. '.Axes(xlValue, xlSecondary).HasTitle = False
  56. End With
  57. Sheets("graphmaison" ).Cells(i, 1) = lignier1
  58. Sheets("tableau" ).Select
  59. Next
  60. '
  61. '
  62. ActiveSheet.Shapes.AddTextEffect
  63. (msoTextEffect11, "courbes", "Impact", 20#, _
  64. msoFalse, msoFalse, 249#, 147#).Select
  65. Selection.ShapeRange.IncrementLeft 208.5
  66. Selection.ShapeRange.IncrementTop -30.75
  67. Range("H15" ).Select
  68. End Sub



voilà.

Techneric

Profil : Pointeur
Plus d'informations

bon, maintenant, suffit d'attendre les experts VBA :D

Plus d'informations

Merci, en revanche, j'ai un peu 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.

Plus d'informations

Autant pour moi, Excel m'a enregistré quelque chose que je n'ai pas vu :
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

Il avait enregistré mon bouton !

zeb
Profil : Modérateur libre

Balise [CODE] bon sang de bois !

Sinon, je vois que tu t'en sors bien avec l'enregistreur de macro.

Chr(34), c'est bien le caractère ". Par contre, les guillemets ne font pas partie de la chaîne de caractères pour Excel. En revanche, les guillemets servent à délimiter cette chaîne en VB. Donc, en utilisant Chr(34), tu mettais explicitement un guillemet dans ta chaîne.

Je n'ai pas compris ton histoire de #VALEUR!
Vérifie bien tout (Facile à dire :D ) et reformule ta demande.

Plus d'informations

Bonjour,
j'ai résolu mon pb en faisant:
xxxxx="= Feuil1!R2C3"
i = 2
xxxxx="=Feuil1!R" & Val(i) & "C3"


a écrit :

Bonjour,


Je souhaite générer au moins 140 graphes sur l'évolution sur 1 an de
mes données. Cependant, ce nombre peut varier, je souhaite donc tout automatiser.
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


zeb
Profil : Modérateur libre

Bon comme personne ne veut respecter les règles de publications, je m'enerve et je ferme !


  FORUM Tom's Hardware » Programmation » VB / VBA / VBS » macro Excel VBA : Création automatique de 140 graphiques

Aller à :
 

Annonces Google