I made a few minor changes and plugged it into my routine as follows:
* Force the Valid() event for the current prompt...
IF TYPE('ThisForm.ActiveControl') = 'O'
*-- Can't use SetFocus() if called from a Valid() or Activate() Method.
LOCAL lcProgram,lnCompteur,llOkayToSetFocus
lcProgram=PROGRAM(1)
lnCompteur=2
llOkayToSetFocus = .T.
DO WHILE LEN(lcProgram)>0
lcProgram=EVALUATE('PROGRAM('+ALLTRIM(STR(lnCompteur))+')')
lnCompteur=lnCompteur+1
IF INLIST(UPPER(RIGHT(lcProgram,6)), '.VALID', 'WHEN', 'ACTIVATE')
llOkayToSetFocus = .F.
EXIT
ENDIF
ENDDO
IF llOkayToSetFocus
ThisForm.ActiveControl.SetFocus()
ENDIF
ENDIF
It works perfectly! Thanks again.