Bonjour,
Petit à petit, je m'approche de la solution, grâce à différentes aides.
Ci-joint le fichier exemple "Copie de Couleur-Controle-USF 15".
Le fichier fonctionne. Cependant, mon projet comporte un multipage imbriqué dans un autre multipage.
Par conséquent, le code que j'ai trouvé, n'est pas suffisant:
Private Sub CouleurLastFocussedControl()
Dim LastFocussedControl As Control
'This allows a control to be inside a frame inside a multipage
'For nested multipages use a whileloop for example, I'm sure you can workout
Set LastFocussedControl = ActiveControl
If (Left(LastFocussedControl.Name, Len("Multipage")) = "MultiPage") Then
Set LastFocussedControl = LastFocussedControl.Pages(LastFocussedControl.Value).ActiveControl
End If
If (Left(LastFocussedControl.Name, Len("Frame")) = "Frame") Then
Set LastFocussedControl = LastFocussedControl.ActiveControl
End If
LastFocussedControl.BackColor = vbRed
End Sub
L'auteur de ce code préconise un "whileloop" pour que le fichier "Copie de Couleur-Controle-USF 16" fonctionne correctement.
L'objectif recherché est:
- Le control actif doit rester en rouge si on bouge le curseur sur le formulaire (excepté Frame et Multipage).
- Le control actif doit devenir rouge entrant dans le control (excepté Frame et Multipage).
- Au passage du curseur, si le control n'est pas actif, il doit devenir vert (excepté Frame et Multipage).
- Lors de la sortie du control (via tab, enter, haut, bas) ou lorsque le curseur n'est plus sur le control, le control reprend sa couleur d'origine.
Merci de l'aide que vous pourrez m'apporter concernant le multipage imbriqué dans un multipage et le retour à la couleur d'origine à la sortie des controls. (merci de bien vouloir mettre des explications aux pistes que vous m'apporterez).
Cordialement.