Simplifier la formule
Bonjour le Forum, je reviens vers vous, afin de savoir s'il était possible de simplifier les diverses formules ci dessous:
Je n'y comprends pas grand chose en VBA
Merci à vous
Cordialement
Fabien67
If Not Intersect(Target, [L8]) Is Nothing Then
Range("A15:I80").Interior.Color = RGB(250, 249, 227)
Range("A1:P10").Interior.Color = RGB(238, 232, 170)
Range("L8:O9").Interior.Color = RGB(255, 255, 102)
Range("B2").Interior.Color = RGB(0, 0, 0)
Range("G2").Interior.Color = RGB(0, 0, 0)
Range("L2").Interior.Color = RGB(0, 0, 0)
Range("N2").Interior.Color = RGB(0, 0, 0)
Set rCel = Range("A:A").Find(what:=Target, lookat:=xlWhole, LookIn:=xlValues)
If Not rCel Is Nothing Then
rCel.Offset(0, 0).Select
rCel.Offset(0, 0).Interior.ColorIndex = 42
rCel.Offset(0, 1).Interior.ColorIndex = 46
rCel.Offset(0, 2).Interior.ColorIndex = 46
rCel.Offset(0, 3).Interior.ColorIndex = 46
rCel.Offset(0, 4).Interior.ColorIndex = 46
rCel.Offset(0, 5).Interior.ColorIndex = 46
rCel.Offset(0, 6).Interior.ColorIndex = 46
rCel.Offset(0, 7).Interior.ColorIndex = 46
rCel.Offset(0, 8).Interior.ColorIndex = 46
End If
End If
'
End Sub
Bonsoir,
Un essai avec quelques explications :
If Not Intersect(Target, [L8]) Is Nothing Then
Range("A15:I80").Interior.Color = RGB(250, 249, 227)
Range("A1:P10").Interior.Color = RGB(238, 232, 170)
Range("L8:O9").Interior.Color = RGB(255, 255, 102)
' dans un Range vous pouvez définir plusieurs cellules tout comme vous pouvez faire une sélection
' sur une feuille avec la touche [Ctrl] enfoncée pour sélectionner des cellules non contigues
Range("B2;G2;L2;N2").Interior.Color = RGB(0, 0, 0)
' Range("G2").Interior.Color = RGB(0, 0, 0)
' Range("L2").Interior.Color = RGB(0, 0, 0)
' Range("N2").Interior.Color = RGB(0, 0, 0)
Set rcel = Range("A:A").Find(what:=Target, lookat:=xlWhole, LookIn:=xlValues)
If Not rcel Is Nothing Then
' rCel.Offset(0, 0).Select
rcel.Interior.ColorIndex = 42
' ensuite pour les autres cellules avec une couleur identique
' soit vous modifiez la taille de la référence:
rcel.Offset(0, 1).Resize(1, 7).Interior.ColorIndex = 46
' rCel.Offset(0, 2).Interior.ColorIndex = 46
' rCel.Offset(0, 3).Interior.ColorIndex = 46
' rCel.Offset(0, 4).Interior.ColorIndex = 46
' rCel.Offset(0, 5).Interior.ColorIndex = 46
' rCel.Offset(0, 6).Interior.ColorIndex = 46
' rCel.Offset(0, 7).Interior.ColorIndex = 46
' rCel.Offset(0, 8).Interior.ColorIndex = 46
' soit vous faites une boucle :
For i = 1 To 8
rcel.Offset(0, i).Interior.ColorIndex = 46
Next i
End If
End If
Attention ! Pas testé !
Evidemment tous ce qui est en vert est à supprimer après avoir votre choix, tout comme sur la deuxième partie, il ne faut garder qu'une des deux solutions proposée !
@ bientôt
LouReeD