Bonjour à tous,
Je suis débutant en programmation sur VBA, depuis quelques jours j'essaye de faire une macro mais là je bloque, est ce que quelqu'un pourrait m'aider svp ?
Voici mon problème :
Je veux créer une macro qui modifie les bordures automatiquement des case X si case Y est change de valeur. En gros si je modifie l'une des cases suivantes (BR18, BV18, BZ18, CD18) je veux qu'il sélectionne la case décalé de 0 ligne et 2 colonnes et qu'il modifie ses bordures en fonctions de la valeur de la case (BR18, BV18, BZ18, CD18)
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106 Sub NV() Dim Rng As Range If Not Intersect(ActiveCell, Range("BR19")) Is Nothing Then Set Rng = Range("BR18") If Not Intersect(ActiveCell, Range("BV19")) Is Nothing Then Set Rng = Range("BV18") If Not Intersect(ActiveCell, Range("BZ19")) Is Nothing Then Set Rng = Range("BZ18") If Not Intersect(ActiveCell, Range("CD19")) Is Nothing Then Set Rng = Range("CD18") If Rng = 1 Then Rng.Offset(0, 2).Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThick End With With Selection.Borders(xlEdgeTop) .LineStyle = xlDash .ThemeColor = 1 .TintAndShade = -0.249946592608417 .Weight = xlMedium End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlDash .ThemeColor = 1 .TintAndShade = -0.249946592608417 .Weight = xlMedium End With With Selection.Borders(xlEdgeRight) .LineStyle = xlDash .ThemeColor = 1 .TintAndShade = -0.249946592608417 .Weight = xlMedium End With Selection.Borders(xlInsideVertical).LineStyle = xlNone Selection.Borders(xlInsideHorizontal).LineStyle = xlNone End If If Rng = 2 Then Rng.Offset(0, 2).Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThick End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThick End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlDash .ThemeColor = 1 .TintAndShade = -0.249946592608417 .Weight = xlMedium End With With Selection.Borders(xlEdgeRight) Selection.Borders (xlEdgeBottom) .LineStyle = xlDash .ThemeColor = 1 .TintAndShade = -0.249946592608417 .Weight = xlMedium End If If Rng = 3 Then Rng.Offset(0, 2).Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThick End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThick End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlDash .ThemeColor = 1 .TintAndShade = -0.249946592608417 .Weight = xlMedium End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThick End With Selection.Borders(xlInsideVertical).LineStyle = xlNone Selection.Borders(xlInsideHorizontal).LineStyle = xlNone End If End If End If End If End If End Sub
Je vous remercie par avance de votre aide.
Partager