Bonjour Polo et tout le monde,
Pour arriver à colorer la cellule après avoir saisi directement dans une cellule et faire ensuite entrée, il faut modifier la macro pour 'viser' cette cellule.
1- S'il n'y a pas l'option 'Déplacer la sélection après validation' la macro telle qu'elle va très bien.
Private Sub Worksheet_Change(ByVal Target As Range)
With ActiveCell.Interior
Select Case UCase(ActiveCell)
Case '': .ColorIndex = xlNone
Case 'M': .ColorIndex = 4
Case 'MW': .ColorIndex = 4
Case 'S': .ColorIndex = 8
Case 'SW': .ColorIndex = 8
Case 'N': .ColorIndex = 6
Case 'A': .ColorIndex = 7
Case 'RPL': .ColorIndex = 7
Case 'AST': .ColorIndex = 37
End Select
End With
End Sub
2- Si l'option 'Déplacer la sélection après validation' et 'Droite' ou 'Bas' sont cochées alors modifier la macro comme suit :
Private Sub Worksheet_Change(ByVal Target As Range)
If Application.MoveAfterReturnDirection = xlDown Then
With ActiveCell.Offset(-1, 0)
Select Case UCase(ActiveCell.Offset(-1, 0))
Case '': .Interior.ColorIndex = xlNone
Case 'M': .Interior.ColorIndex = 4
Case 'MW': .Interior.ColorIndex = 4
Case 'S': .Interior.ColorIndex = 8
Case 'SW': .Interior.ColorIndex = 8
Case 'N': .Interior.ColorIndex = 6
Case 'A': .Interior.ColorIndex = 7
Case 'RPL': .Interior.ColorIndex = 7
Case 'AST': .Interior.ColorIndex = 37
End Select
End With
End If
If Application.MoveAfterReturnDirection = xlToRight Then
With ActiveCell.Offset(0, -1)
Select Case UCase(ActiveCell.Offset(0, -1))
Case '': .Interior.ColorIndex = xlNone
Case 'M': .Interior.ColorIndex = 4
Case 'MW': .Interior.ColorIndex = 4
Case 'S': .Interior.ColorIndex = 8
Case 'SW': .Interior.ColorIndex = 8
Case 'N': .Interior.ColorIndex = 6
Case 'A': .Interior.ColorIndex = 7
Case 'RPL': .Interior.ColorIndex = 7
Case 'AST': .Interior.ColorIndex = 37
End Select
End With
End If
End Sub
Cordialement
CBernardT
Message édité par: CBernardT, à: 21/03/2005 16:30