Macro qui incrémente de mois en mois

ve-

XLDnaute Nouveau
Bonjour à tous !

Dans le cadre de mon job, je suis des "contrats entre entités" sous forme de graphes et ce, de mois en mois. J'ai écrit une marco qui "s'allonge tous les mois" car elle "incrémente" les graphes. Je pense que je ne suis pas très claire... Et je m'en excuse...
Donc, je vous livre là ma macro.

Ma question, ou plutôt, ma demande est : comment simplifier tout ça, car nous avons là une macro sur 4 mois... Donc, qu'en sera-t-il quand je l'écrirais pour 12 mois ???!!!

En fait, voila mes limites en VBA... Je sais écrire quelque chose, mais j'ai du mal à le synthétiser !!!

Je remercie donc d'avance toute personne qui voudra bien m'aider et me faire évoluer en VBA.

Au plaisir de vous lire bientôt
Excellement vôtre

Sub MiseEnPlaceGraph()

'Désactiver la màj de l'écran (qui clignote quand il ouvre et ferme) pour gagner du temps
Application.ScreenUpdating = False

'Supprimer d'abord les éventuels graphes
Workbooks("NCSI GolfeLyon Synthèse 11N09.xls").Sheets("Mois").Activate
If ActiveSheet.ChartObjects.Count >= 1 Then
ActiveSheet.ChartObjects.Delete
End If

'Copier coller les graphes de juillet
Dim a As Long
For a = 1 To 8
Workbooks("NCSI GolfeLyon 07J09.xls").Sheets("M").Activate
ActiveSheet.ChartObjects("GRAF" & a).Activate
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy
Workbooks("NCSI GolfeLyon Synthèse 11N09.xls").Sheets("Mois").Activate
Range("h" & 4 + (a * 3)).Select
ActiveSheet.Paste
With ActiveChart.Parent
.Left = 460
.Top = 44 + (a * 92.2)
End With
Next a
Dim b As Long
For b = 9 To 16
Workbooks("NCSI GolfeLyon 07J09.xls").Sheets("M").Activate
ActiveSheet.ChartObjects("GRAF" & b).Activate
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy
Workbooks("NCSI GolfeLyon Synthèse 11N09.xls").Sheets("Mois").Activate
Range("h" & 4 + (b * 3)).Select
ActiveSheet.Paste
With ActiveChart.Parent
.Left = 460
.Top = 168.4 + (b * 92.2)
End With
Next b
Dim c As Long
For c = 17 To 17
Workbooks("NCSI GolfeLyon 07J09.xls").Sheets("M").Activate
ActiveSheet.ChartObjects("GRAF" & c).Activate
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy
Workbooks("NCSI GolfeLyon Synthèse 11N09.xls").Sheets("Mois").Activate
Range("h" & 4 + (c * 3)).Select
ActiveSheet.Paste
With ActiveChart.Parent
.Left = 460
.Top = 292.5 + (c * 92.2)
End With
Next c

'Copier coller les graphes de août
Dim d As Long
For d = 1 To 8
Workbooks("NCSI GolfeLyon 08A09.xls").Sheets("M").Activate
ActiveSheet.ChartObjects("GRAF" & d).Activate
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy
Workbooks("NCSI GolfeLyon Synthèse 11N09.xls").Sheets("Mois").Activate
Range("i" & 4 + (d * 3)).Select
ActiveSheet.Paste
With ActiveChart.Parent
.Left = 535
.Top = 44 + (d * 92.2)
End With
Next d
Dim e As Long
For e = 9 To 16
Workbooks("NCSI GolfeLyon 08A09.xls").Sheets("M").Activate
ActiveSheet.ChartObjects("GRAF" & e).Activate
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy
Workbooks("NCSI GolfeLyon Synthèse 11N09.xls").Sheets("Mois").Activate
Range("i" & 4 + (e * 3)).Select
ActiveSheet.Paste
With ActiveChart.Parent
.Left = 535
.Top = 168.4 + (e * 92.2)
End With
Next e
Dim f As Long
For f = 17 To 17
Workbooks("NCSI GolfeLyon 08A09.xls").Sheets("M").Activate
ActiveSheet.ChartObjects("GRAF" & f).Activate
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy
Workbooks("NCSI GolfeLyon Synthèse 11N09.xls").Sheets("Mois").Activate
Range("i" & 4 + (f * 3)).Select
ActiveSheet.Paste
With ActiveChart.Parent
.Left = 535
.Top = 292.5 + (f * 92.2)
End With
Next f

'Copier coller les graphes de septembre
Dim g As Long
For g = 1 To 8
Workbooks("NCSI GolfeLyon 09S09.xls").Sheets("M").Activate
ActiveSheet.ChartObjects("GRAF" & g).Activate
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy
Workbooks("NCSI GolfeLyon Synthèse 11N09.xls").Sheets("Mois").Activate
Range("j" & 4 + (g * 3)).Select
ActiveSheet.Paste
With ActiveChart.Parent
.Left = 609
.Top = 44 + (g * 92.2)
End With
Next g
Dim h As Long
For h = 9 To 16
Workbooks("NCSI GolfeLyon 09S09.xls").Sheets("M").Activate
ActiveSheet.ChartObjects("GRAF" & h).Activate
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy
Workbooks("NCSI GolfeLyon Synthèse 11N09.xls").Sheets("Mois").Activate
Range("j" & 4 + (h * 3)).Select
ActiveSheet.Paste
With ActiveChart.Parent
.Left = 609
.Top = 168.4 + (h * 92.2)
End With
Next h
Dim i As Long
For i = 17 To 17
Workbooks("NCSI GolfeLyon 09S09.xls").Sheets("M").Activate
ActiveSheet.ChartObjects("GRAF" & i).Activate
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy
Workbooks("NCSI GolfeLyon Synthèse 11N09.xls").Sheets("Mois").Activate
Range("j" & 4 + (i * 3)).Select
ActiveSheet.Paste
With ActiveChart.Parent
.Left = 609
.Top = 292.5 + (i * 92.2)
End With
Next i

'Copier coller les graphes de octobre
Dim j As Long
For j = 1 To 8
Workbooks("NCSI GolfeLyon 10O09.xls").Sheets("M").Activate
ActiveSheet.ChartObjects("GRAF" & j).Activate
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy
Workbooks("NCSI GolfeLyon Synthèse 11N09.xls").Sheets("Mois").Activate
Range("k" & 4 + (j * 3)).Select
ActiveSheet.Paste
With ActiveChart.Parent
.Left = 683
.Top = 44 + (j * 92.2)
End With
Next j
Dim k As Long
For k = 9 To 16
Workbooks("NCSI GolfeLyon 10O09.xls").Sheets("M").Activate
ActiveSheet.ChartObjects("GRAF" & k).Activate
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy
Workbooks("NCSI GolfeLyon Synthèse 11N09.xls").Sheets("Mois").Activate
Range("k" & 4 + (k * 3)).Select
ActiveSheet.Paste
With ActiveChart.Parent
.Left = 683
.Top = 168.4 + (k * 92.2)
End With
Next k
Dim l As Long
For l = 17 To 17
Workbooks("NCSI GolfeLyon 10O09.xls").Sheets("M").Activate
ActiveSheet.ChartObjects("GRAF" & l).Activate
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy
Workbooks("NCSI GolfeLyon Synthèse 11N09.xls").Sheets("Mois").Activate
Range("k" & 4 + (l * 3)).Select
ActiveSheet.Paste
With ActiveChart.Parent
.Left = 683
.Top = 292.5 + (l * 92.2)
End With
Next l
'Mettre tous les graphes aux dimensions : 2.1x2.5
Dim ChtObj As ChartObject
For Each ChtObj In ActiveSheet.ChartObjects
With ChtObj
.Height = 58
.Width = 71
End With
Next

End Sub
 

ve-

XLDnaute Nouveau
Re : Macro qui incrémente de mois en mois

Bonjour,

je vois que personne ne répond à cette question... Pour ma part, je me doute bien que tout se joue dans une boucle...
Merci à ceux qui peuvent m'apporter des éléments de réponse car j'en ai besoin rapidemment maintenant...
 

Hellowa

XLDnaute Junior
Re : Macro qui incrémente de mois en mois

Bonjour,
Pourrai tu nous mettre un fichier d'exemple anonymisé s'il te plait? Personnelement je n'ai pas le courage de déchiffrer tout ce code et je suis sur que le débuggueur pourrait nous aider aussi.Cordialement,
Eloi.
 

ve-

XLDnaute Nouveau
Re : Macro qui incrémente de mois en mois

Bonjour Hellowa, Bonjour à tous,

je joints donc un fichier sur lequel il y a la macro. Le truc, c'est qu'elle fait appel à d'autres fichiers...

Bref, dis-moi ce que tu en penses.

Vé-
 

Pièces jointes

  • Test NCSI.zip
    32.3 KB · Affichages: 35

Hellowa

XLDnaute Junior
Re : Macro qui incrémente de mois en mois

Désolé, celà n'est pas de mon ressort, je suis relativement débutant en VB et sur Excel, et je n'ai jamais touché de graphiques encore.
Désolé encore, en éspérant pour toi que quelqu'un puisse t'aider!
 

ve-

XLDnaute Nouveau
Re : Macro qui incrémente de mois en mois

OK, merci Hellowa. C'est déjà sympa de t'être penché sur mon problème. Même là, je prends la tête à des collègues... Personne n'arrive à me trouver une solution...

D'autres personnes ici ???
 

Discussions similaires

Statistiques des forums

Discussions
312 545
Messages
2 089 479
Membres
104 178
dernier inscrit
Lampalator