Bonjour à Tous,
Je vous sollicite car je n'arrive pas à comprendre pourquoi une partie de mon code ne s'éxecute pas ou s'il s'execute pourquoi je ne vois pas de changement:
Le code manipule les objets shapes (shp1,shp2 et shp3) suivants de ma feuille initialement de ces coloris:
shp3 connecteur de contour violet
shp2 losange de contour violet et d'intérieur orange
shp3 fleche de contour vert.
lorsque je lance la procédure plotshape()
j'ai mis une msgbox en guise de point d'arret pour pouvoir vérifier le passage du contour des shp3 et shp2 en rouge.
il me semble qu'avant la temporisation on devrait avoir:
shp3 connecteur de contour rouge (il doit s'être retourné à 180°)
shp2 losange de contour rouge et d'intérieur bleu roi (on ne peut pas voir le passage de couleur intérieur en rouge car ce n'est pas la dernière action)
shp3 fleche de contour vert.
mais ce n'est pas le cas, on a au stade de la msgbox la meme configuration que l'état initial
ce n'est qu'après avoir validé et attendu 10 secondes que j'ai:
> mon inversion à 180° de shp3 mais en vert (sans avoir vu de rouge)
> mon losange shp2 qui devient orange de l'intérieur et rouge sur le contour
Notez que la cellule G25 a pris la valeur 5880731 avant la msgbox conformément à l'ordre de mes instructions.
Quelqu'un saurait il m'expliquer pourquoi mon connecteur shp3 ne s'inverse et passe en rouge qu’après la msgbox ?
J'ai remarqué que depuis l'insertion de ma temporisation (attente de l'appli de 10s) les premières actions ne se réalisent plus.
Je joins mon fichier excel en PJ dedans j'ai mis des capture d'écran des 3 temps:
> initial
> execution de la msgbox
> fin de la macro
Merci d'avance pour vos réponses
Karim.
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 Sub plotshape() Dim shp1 As Shape Dim shp2 As Shape Dim shp3 As Shape Dim c1 As Range Dim Fin_Tempo As Variant Dim I As Integer Set c1 = Range("G25") Set shp3 = ActiveSheet.Shapes(1) Set shp2 = ActiveSheet.Shapes(2) shp3.Flip msoFlipHorizontal shp3.Line.ForeColor.RGB = RGB(255, 0, 0) With shp2 .Fill.ForeColor.RGB = RGB(255, 0, 0) .Fill.ForeColor.SchemeColor = 15 .Line.ForeColor.RGB = RGB(255, 0, 0) End With Set shp1 = ActiveSheet.Shapes(3) c1.Value = shp1.Line.ForeColor.RGB MsgBox ("vérif rouge") I = 10 Fin_Tempo = Now + TimeSerial(0, 0, I) Application.Wait (Fin_Tempo) shp3.Line.ForeColor.RGB = shp1.Line.ForeColor.RGB End Sub
Partager