Bonjour,
j'ai une macro ("Workbook_SheetChangequi se trouve dans "ThisWorkbook", et une autre macro ("test") qui se trouve dans un Module.
La macro qui se trouve dans ThisWorkbook se lance automatiquement à chaque changement d'une cellule se trouvant dans les feuilles TCD ALU et TCD ACIER :
La macro qui se trouve dans le Module ne se lance que manuellement, mais je voudrais qu'elle aussi se lance dès lors qu'il y a un changement dans une des cellules de TCD ALU ou TCD ACIER :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) wshSheets = [{"TCD ACIER", "TCD ALU"}] If Not IsError(Application.Match(Sh.Name, wshSheets, 1)) Then With Sheets("TCD ALU") Worksheets("TCD ALU").Activate ActiveWindow.Zoom = 120 .Range("N2:X49").CopyPicture xlScreen, xlBitmap With .ChartObjects.Add(0, 0, 2400, 1429).Chart .Paste .Export ThisWorkbook.Path & "\test1.gif", "gif" End With .ChartObjects(Sheets("TCD ALU").ChartObjects.Count).Delete End With With Sheets("TCD ACIER") Worksheets("TCD ACIER").Activate ActiveWindow.Zoom = 100 .Range("P2:AA18").CopyPicture xlScreen, xlBitmap With .ChartObjects.Add(0, 0, 2400, 1429).Chart .Paste .Export ThisWorkbook.Path & "\test2.gif", "gif" End With .ChartObjects(Sheets("TCD ACIER").ChartObjects.Count).Delete End With ActiveWorkbook.Save End If End Sub
Il faudrait donc que je la place dans ThisWorkbook, mais là est le problème. Peu importe la façon dont je la place dans l'autre macro, Excel finit par planter. Et lorsque je stoppe l'exécution, j'ai une erreur 91 qui s'affiche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Sub test() With Worksheets("TCD ALU").Range("a1:a40") Dim NLigneDescription As Long Dim Dligne As Long Cells.Find(What:="Total général", After:=Range("A1"), LookIn:=xlValues, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate NLigneDescription = ActiveCell.Row Range("A200").Value = NLigneDescription Dligne = NLigneDescription + 10 Range("A201").Value = Dligne 'Worksheets("TCD ALU").Range("N" & NLigneDescription & ":" & "W" & NLigneDescription).Interior.Color = RGB(222, 0, 0) End With End Sub
Comment faire pour que la macro test s'effectue automatiquement et avant chaque exportation JPG ?
Je galère là-dessus depuis plusieurs jours, et c'est frustrant puisque c'est la dernière étape de mon travail ...
Merci infiniment par avance ! Je comtpe sur votre aide !
PS: si le code n'est pas clair je peux l'expliquer en détail, si nécessaire.
Partager