OVH Cloud OVH Cloud

Rétablir le focus dans une procédure

7 réponses
Avatar
Ouille
Bonsoir le forum

Je repose ma question car je n'arrive pas a retrouver le fils, de celle-ci.

Sur l'aide de Michel PIERRON, que je remercie encore, pour ca procédrue
d'obliger la saisie en numérique de plusieur TextBox et lui demandant s'il
était possible qu'un message avertisse qu'il fallait obligatoirement saisir
une valeur nuérique, dont voici le code :

If InStr(1, Cars, L) Then
CleanChain = CleanChain & L
Else
MsgBox "Vous ne pouvez saisir que des caractères numériques : " _
& vbCrLf & " 0,1,2,3,4,5,6,7,8, et 9." & vbCrLf & vbCrLf & "et les
caractères " _
& vbCrLf & "(,)" & " et " & "(.)", vbInformation, "INFORMATION"
End If
....

Ou bien encore:
....
If InStr(1, Cars, L) Then CleanChain = CleanChain & L Else Msg
....

Private Sub Msg()
MsgBox "Vous ne pouvez saisir que des caractères numériques : " _
& vbCrLf & " 0,1,2,3,4,5,6,7,8, et 9." & vbCrLf & vbCrLf & "et les
caractères " _
& vbCrLf & "(,)" & " et " & "(.)", vbInformation, "INFORMATION"
End Sub

Et j'ai essayer mais en vain de rétablir le focus sur le control dont
l'erreur avait eu lieu.

Est il donc possible de le faire? Je vous remercie d'avance, Ouille

7 réponses

Avatar
Joel
Bonsoir !

Comment ?

LeNomDuControl.Setfocus ne marche pas ?

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Ouille" a écrit dans le message de
news:%
Bonsoir le forum

Je repose ma question car je n'arrive pas a retrouver le fils, de
celle-ci.


Sur l'aide de Michel PIERRON, que je remercie encore, pour ca procédrue
d'obliger la saisie en numérique de plusieur TextBox et lui demandant s'il
était possible qu'un message avertisse qu'il fallait obligatoirement
saisir

une valeur nuérique, dont voici le code :

If InStr(1, Cars, L) Then
CleanChain = CleanChain & L
Else
MsgBox "Vous ne pouvez saisir que des caractères numériques : " _
& vbCrLf & " 0,1,2,3,4,5,6,7,8, et 9." & vbCrLf & vbCrLf & "et les
caractères " _
& vbCrLf & "(,)" & " et " & "(.)", vbInformation, "INFORMATION"
End If
....

Ou bien encore:
....
If InStr(1, Cars, L) Then CleanChain = CleanChain & L Else Msg
....

Private Sub Msg()
MsgBox "Vous ne pouvez saisir que des caractères numériques : " _
& vbCrLf & " 0,1,2,3,4,5,6,7,8, et 9." & vbCrLf & vbCrLf & "et les
caractères " _
& vbCrLf & "(,)" & " et " & "(.)", vbInformation, "INFORMATION"
End Sub

Et j'ai essayer mais en vain de rétablir le focus sur le control dont
l'erreur avait eu lieu.

Est il donc possible de le faire? Je vous remercie d'avance, Ouille




Avatar
Michel Pierron
Bonsoir Ouille;
Publie ta procédure, car chez moi, le focus revient sur le textbox en cause.
MP

"Ouille" a écrit dans le message de
news:%
Bonsoir le forum

Je repose ma question car je n'arrive pas a retrouver le fils, de
celle-ci.


Sur l'aide de Michel PIERRON, que je remercie encore, pour ca procédrue
d'obliger la saisie en numérique de plusieur TextBox et lui demandant s'il
était possible qu'un message avertisse qu'il fallait obligatoirement
saisir

une valeur nuérique, dont voici le code :

If InStr(1, Cars, L) Then
CleanChain = CleanChain & L
Else
MsgBox "Vous ne pouvez saisir que des caractères numériques : " _
& vbCrLf & " 0,1,2,3,4,5,6,7,8, et 9." & vbCrLf & vbCrLf & "et les
caractères " _
& vbCrLf & "(,)" & " et " & "(.)", vbInformation, "INFORMATION"
End If
....

Ou bien encore:
....
If InStr(1, Cars, L) Then CleanChain = CleanChain & L Else Msg
....

Private Sub Msg()
MsgBox "Vous ne pouvez saisir que des caractères numériques : " _
& vbCrLf & " 0,1,2,3,4,5,6,7,8, et 9." & vbCrLf & vbCrLf & "et les
caractères " _
& vbCrLf & "(,)" & " et " & "(.)", vbInformation, "INFORMATION"
End Sub

Et j'ai essayer mais en vain de rétablir le focus sur le control dont
l'erreur avait eu lieu.

Est il donc possible de le faire? Je vous remercie d'avance, Ouille




Avatar
Joel
Bonsoir Michel,

Vu BAL Perso ? suite ton mail ?

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Michel Pierron" a écrit dans le message de
news:
Bonsoir Ouille;
Publie ta procédure, car chez moi, le focus revient sur le textbox en
cause.

MP

"Ouille" a écrit dans le message de
news:%
Bonsoir le forum

Je repose ma question car je n'arrive pas a retrouver le fils, de
celle-ci.


Sur l'aide de Michel PIERRON, que je remercie encore, pour ca procédrue
d'obliger la saisie en numérique de plusieur TextBox et lui demandant
s'il


était possible qu'un message avertisse qu'il fallait obligatoirement
saisir

une valeur nuérique, dont voici le code :

If InStr(1, Cars, L) Then
CleanChain = CleanChain & L
Else
MsgBox "Vous ne pouvez saisir que des caractères numériques : " _
& vbCrLf & " 0,1,2,3,4,5,6,7,8, et 9." & vbCrLf & vbCrLf & "et les
caractères " _
& vbCrLf & "(,)" & " et " & "(.)", vbInformation, "INFORMATION"
End If
....

Ou bien encore:
....
If InStr(1, Cars, L) Then CleanChain = CleanChain & L Else Msg
....

Private Sub Msg()
MsgBox "Vous ne pouvez saisir que des caractères numériques : " _
& vbCrLf & " 0,1,2,3,4,5,6,7,8, et 9." & vbCrLf & vbCrLf & "et les
caractères " _
& vbCrLf & "(,)" & " et " & "(.)", vbInformation, "INFORMATION"
End Sub

Et j'ai essayer mais en vain de rétablir le focus sur le control dont
l'erreur avait eu lieu.

Est il donc possible de le faire? Je vous remercie d'avance, Ouille








Avatar
Michel Pierron
Bonsoir Joel;
Non, car j'ai quitté le boulot avant réception.
Michel

"Joel" a écrit dans le message de
news:ce3mgc$p4u$
Bonsoir Michel,

Vu BAL Perso ? suite ton mail ?

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Michel Pierron" a écrit dans le message de
news:
Bonsoir Ouille;
Publie ta procédure, car chez moi, le focus revient sur le textbox en
cause.

MP

"Ouille" a écrit dans le message de
news:%
Bonsoir le forum

Je repose ma question car je n'arrive pas a retrouver le fils, de
celle-ci.


Sur l'aide de Michel PIERRON, que je remercie encore, pour ca
procédrue



d'obliger la saisie en numérique de plusieur TextBox et lui demandant
s'il


était possible qu'un message avertisse qu'il fallait obligatoirement
saisir

une valeur nuérique, dont voici le code :

If InStr(1, Cars, L) Then
CleanChain = CleanChain & L
Else
MsgBox "Vous ne pouvez saisir que des caractères numériques : " _
& vbCrLf & " 0,1,2,3,4,5,6,7,8, et 9." & vbCrLf & vbCrLf & "et les
caractères " _
& vbCrLf & "(,)" & " et " & "(.)", vbInformation, "INFORMATION"
End If
....

Ou bien encore:
....
If InStr(1, Cars, L) Then CleanChain = CleanChain & L Else Msg
....

Private Sub Msg()
MsgBox "Vous ne pouvez saisir que des caractères numériques : " _
& vbCrLf & " 0,1,2,3,4,5,6,7,8, et 9." & vbCrLf & vbCrLf & "et les
caractères " _
& vbCrLf & "(,)" & " et " & "(.)", vbInformation, "INFORMATION"
End Sub

Et j'ai essayer mais en vain de rétablir le focus sur le control dont
l'erreur avait eu lieu.

Est il donc possible de le faire? Je vous remercie d'avance, Ouille












Avatar
Ouille
Joel, Michel, Le forum,

Merci de vos réponses, ci joint le code mis en fonction de mes controls :

Private Sub AGFFSal_Change()
Me.AGFFSal = CleanChain(Me.AGFFSal)
End Sub

Private Sub ASSEDICSal_Change()
Me.ASSEDICSal = CleanChain(Me.ASSEDICSal)
End Sub

Private Sub CSGNonImposable_Change()
Me.CSGNonImposable = CleanChain(Me.CSGNonImposable)
End Sub

Private Sub CSGSal_Change()
Me.CSGSal = CleanChain(Me.CSGSal)
End Sub

Private Sub IRCEMSal_Change()
Me.IRCEMSal = CleanChain(Me.IRCEMSal)
End Sub
Private Sub VeuvageSal_Change()
Me.VeuvageSal = CleanChain(Me.VeuvageSal)
End Sub

Private Sub RDSSal_Change()
Me.RDSSal = CleanChain(Me.RDSSal)
End Sub

Private Sub SECUSal_Change()
Me.SECUSal = CleanChain(Me.SECUSal)
End Sub

Private Sub SECUVieillesseSal_Change()
Me.SECUVieillesseSal = CleanChain(Me.SECUVieillesseSal)
End Sub


Private Function CleanChain(Chain As String) As String 'Interdit la saisie
autre que numérique
Const Cars As String = "0123456789,."
Dim L As String * 1, i As Integer
For i = 1 To Len(Chain)
L = Mid(Chain, i, 1)
Select Case L
Case ",", "."
L = Application.International(xlDecimalSeparator)
If InStr(1, CleanChain, L) Then GoTo 1
End Select
If InStr(1, Cars, L) Then CleanChain = CleanChain & L Else Msg
1: Next i
End Function

Private Sub Msg()
MsgBox "Vous ne pouvez saisir que des caractères numériques : " _
& vbCrLf & " 0,1,2,3,4,5,6,7,8, et 9." & vbCrLf & vbCrLf & "et les
caractères " _
& vbCrLf & "(,)" & " et " & "(.)", vbInformation, "INFORMATION"
End Sub

Voila, je ne pense pas avoir oublié quelque-chose, merci Ouille

"Michel Pierron" a écrit dans le message de
news:%
Bonsoir Joel;
Non, car j'ai quitté le boulot avant réception.
Michel

"Joel" a écrit dans le message de
news:ce3mgc$p4u$
Bonsoir Michel,

Vu BAL Perso ? suite ton mail ?

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Michel Pierron" a écrit dans le message de
news:
Bonsoir Ouille;
Publie ta procédure, car chez moi, le focus revient sur le textbox en
cause.

MP

"Ouille" a écrit dans le message de
news:%
Bonsoir le forum

Je repose ma question car je n'arrive pas a retrouver le fils, de
celle-ci.


Sur l'aide de Michel PIERRON, que je remercie encore, pour ca
procédrue



d'obliger la saisie en numérique de plusieur TextBox et lui
demandant




s'il
était possible qu'un message avertisse qu'il fallait obligatoirement
saisir

une valeur nuérique, dont voici le code :

If InStr(1, Cars, L) Then
CleanChain = CleanChain & L
Else
MsgBox "Vous ne pouvez saisir que des caractères numériques : " _
& vbCrLf & " 0,1,2,3,4,5,6,7,8, et 9." & vbCrLf & vbCrLf & "et les
caractères " _
& vbCrLf & "(,)" & " et " & "(.)", vbInformation, "INFORMATION"
End If
....

Ou bien encore:
....
If InStr(1, Cars, L) Then CleanChain = CleanChain & L Else Msg
....

Private Sub Msg()
MsgBox "Vous ne pouvez saisir que des caractères numériques : " _
& vbCrLf & " 0,1,2,3,4,5,6,7,8, et 9." & vbCrLf & vbCrLf & "et les
caractères " _
& vbCrLf & "(,)" & " et " & "(.)", vbInformation, "INFORMATION"
End Sub

Et j'ai essayer mais en vain de rétablir le focus sur le control
dont




l'erreur avait eu lieu.

Est il donc possible de le faire? Je vous remercie d'avance, Ouille
















Avatar
Joel
Bonsoir, re;_)

Pas essayé mais ...

Private Function CleanChain(Chain As Control) As String 'Interdit la saisie
autre que numérique
Const Cars As String = "0123456789,."
Dim L As String * 1, i As Integer
For i = 1 To Len(Chain)
L = Mid(Chain, i, 1)
Select Case L
Case ",", "."
L = Application.International(xlDecimalSeparator)
If InStr(1, CleanChain, L) Then GoTo 1
End Select
If InStr(1, Cars, L) Then
CleanChain = CleanChain & L
Else
Msg
Chain.setfocus
endif
1: Next i
End Function

Private Sub Msg()
MsgBox "Vous ne pouvez saisir que des caractères numériques : " _
& vbCrLf & " 0,1,2,3,4,5,6,7,8, et 9." & vbCrLf & vbCrLf & "et les
caractères " _
& vbCrLf & "(,)" & " et " & "(.)", vbInformation, "INFORMATION"
End Sub

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Ouille" a écrit dans le message de
news:%
Joel, Michel, Le forum,

Merci de vos réponses, ci joint le code mis en fonction de mes controls :

Private Sub AGFFSal_Change()
Me.AGFFSal = CleanChain(Me.AGFFSal)
End Sub

Private Sub ASSEDICSal_Change()
Me.ASSEDICSal = CleanChain(Me.ASSEDICSal)
End Sub

Private Sub CSGNonImposable_Change()
Me.CSGNonImposable = CleanChain(Me.CSGNonImposable)
End Sub

Private Sub CSGSal_Change()
Me.CSGSal = CleanChain(Me.CSGSal)
End Sub

Private Sub IRCEMSal_Change()
Me.IRCEMSal = CleanChain(Me.IRCEMSal)
End Sub
Private Sub VeuvageSal_Change()
Me.VeuvageSal = CleanChain(Me.VeuvageSal)
End Sub

Private Sub RDSSal_Change()
Me.RDSSal = CleanChain(Me.RDSSal)
End Sub

Private Sub SECUSal_Change()
Me.SECUSal = CleanChain(Me.SECUSal)
End Sub

Private Sub SECUVieillesseSal_Change()
Me.SECUVieillesseSal = CleanChain(Me.SECUVieillesseSal)
End Sub


Private Function CleanChain(Chain As String) As String 'Interdit la saisie
autre que numérique
Const Cars As String = "0123456789,."
Dim L As String * 1, i As Integer
For i = 1 To Len(Chain)
L = Mid(Chain, i, 1)
Select Case L
Case ",", "."
L = Application.International(xlDecimalSeparator)
If InStr(1, CleanChain, L) Then GoTo 1
End Select
If InStr(1, Cars, L) Then CleanChain = CleanChain & L Else Msg
1: Next i
End Function

Private Sub Msg()
MsgBox "Vous ne pouvez saisir que des caractères numériques : " _
& vbCrLf & " 0,1,2,3,4,5,6,7,8, et 9." & vbCrLf & vbCrLf & "et les
caractères " _
& vbCrLf & "(,)" & " et " & "(.)", vbInformation, "INFORMATION"
End Sub

Voila, je ne pense pas avoir oublié quelque-chose, merci Ouille

"Michel Pierron" a écrit dans le message de
news:%
Bonsoir Joel;
Non, car j'ai quitté le boulot avant réception.
Michel

"Joel" a écrit dans le message de
news:ce3mgc$p4u$
Bonsoir Michel,

Vu BAL Perso ? suite ton mail ?

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Michel Pierron" a écrit dans le message de
news:
Bonsoir Ouille;
Publie ta procédure, car chez moi, le focus revient sur le textbox
en




cause.
MP

"Ouille" a écrit dans le message de
news:%
Bonsoir le forum

Je repose ma question car je n'arrive pas a retrouver le fils, de
celle-ci.


Sur l'aide de Michel PIERRON, que je remercie encore, pour ca
procédrue



d'obliger la saisie en numérique de plusieur TextBox et lui
demandant




s'il
était possible qu'un message avertisse qu'il fallait
obligatoirement





saisir
une valeur nuérique, dont voici le code :

If InStr(1, Cars, L) Then
CleanChain = CleanChain & L
Else
MsgBox "Vous ne pouvez saisir que des caractères numériques : " _
& vbCrLf & " 0,1,2,3,4,5,6,7,8, et 9." & vbCrLf & vbCrLf & "et
les





caractères " _
& vbCrLf & "(,)" & " et " & "(.)", vbInformation, "INFORMATION"
End If
....

Ou bien encore:
....
If InStr(1, Cars, L) Then CleanChain = CleanChain & L Else Msg
....

Private Sub Msg()
MsgBox "Vous ne pouvez saisir que des caractères numériques : " _
& vbCrLf & " 0,1,2,3,4,5,6,7,8, et 9." & vbCrLf & vbCrLf & "et
les





caractères " _
& vbCrLf & "(,)" & " et " & "(.)", vbInformation, "INFORMATION"
End Sub

Et j'ai essayer mais en vain de rétablir le focus sur le control
dont




l'erreur avait eu lieu.

Est il donc possible de le faire? Je vous remercie d'avance,
Ouille

























Avatar
Michel Pierron
Re Ouille;
Je ne sais quoi te dire, car pour moi, ça roule comme prévu. Je peux te
proposer une solution de rechange:
Pour chaque textbox, tu définis la propriété ControlTypeText avec:
Ne sont autorisés que les numériques et symbole décimal !
et tu peux te passer du message d'information.
MP

"Ouille" a écrit dans le message de
news:%
Joel, Michel, Le forum,

Merci de vos réponses, ci joint le code mis en fonction de mes controls :

Private Sub AGFFSal_Change()
Me.AGFFSal = CleanChain(Me.AGFFSal)
End Sub

Private Sub ASSEDICSal_Change()
Me.ASSEDICSal = CleanChain(Me.ASSEDICSal)
End Sub

Private Sub CSGNonImposable_Change()
Me.CSGNonImposable = CleanChain(Me.CSGNonImposable)
End Sub

Private Sub CSGSal_Change()
Me.CSGSal = CleanChain(Me.CSGSal)
End Sub

Private Sub IRCEMSal_Change()
Me.IRCEMSal = CleanChain(Me.IRCEMSal)
End Sub
Private Sub VeuvageSal_Change()
Me.VeuvageSal = CleanChain(Me.VeuvageSal)
End Sub

Private Sub RDSSal_Change()
Me.RDSSal = CleanChain(Me.RDSSal)
End Sub

Private Sub SECUSal_Change()
Me.SECUSal = CleanChain(Me.SECUSal)
End Sub

Private Sub SECUVieillesseSal_Change()
Me.SECUVieillesseSal = CleanChain(Me.SECUVieillesseSal)
End Sub


Private Function CleanChain(Chain As String) As String 'Interdit la saisie
autre que numérique
Const Cars As String = "0123456789,."
Dim L As String * 1, i As Integer
For i = 1 To Len(Chain)
L = Mid(Chain, i, 1)
Select Case L
Case ",", "."
L = Application.International(xlDecimalSeparator)
If InStr(1, CleanChain, L) Then GoTo 1
End Select
If InStr(1, Cars, L) Then CleanChain = CleanChain & L Else Msg
1: Next i
End Function

Private Sub Msg()
MsgBox "Vous ne pouvez saisir que des caractères numériques : " _
& vbCrLf & " 0,1,2,3,4,5,6,7,8, et 9." & vbCrLf & vbCrLf & "et les
caractères " _
& vbCrLf & "(,)" & " et " & "(.)", vbInformation, "INFORMATION"
End Sub

Voila, je ne pense pas avoir oublié quelque-chose, merci Ouille

"Michel Pierron" a écrit dans le message de
news:%
Bonsoir Joel;
Non, car j'ai quitté le boulot avant réception.
Michel

"Joel" a écrit dans le message de
news:ce3mgc$p4u$
Bonsoir Michel,

Vu BAL Perso ? suite ton mail ?

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Michel Pierron" a écrit dans le message de
news:
Bonsoir Ouille;
Publie ta procédure, car chez moi, le focus revient sur le textbox
en




cause.
MP

"Ouille" a écrit dans le message de
news:%
Bonsoir le forum

Je repose ma question car je n'arrive pas a retrouver le fils, de
celle-ci.


Sur l'aide de Michel PIERRON, que je remercie encore, pour ca
procédrue



d'obliger la saisie en numérique de plusieur TextBox et lui
demandant




s'il
était possible qu'un message avertisse qu'il fallait
obligatoirement





saisir
une valeur nuérique, dont voici le code :

If InStr(1, Cars, L) Then
CleanChain = CleanChain & L
Else
MsgBox "Vous ne pouvez saisir que des caractères numériques : " _
& vbCrLf & " 0,1,2,3,4,5,6,7,8, et 9." & vbCrLf & vbCrLf & "et
les





caractères " _
& vbCrLf & "(,)" & " et " & "(.)", vbInformation, "INFORMATION"
End If
....

Ou bien encore:
....
If InStr(1, Cars, L) Then CleanChain = CleanChain & L Else Msg
....

Private Sub Msg()
MsgBox "Vous ne pouvez saisir que des caractères numériques : " _
& vbCrLf & " 0,1,2,3,4,5,6,7,8, et 9." & vbCrLf & vbCrLf & "et
les





caractères " _
& vbCrLf & "(,)" & " et " & "(.)", vbInformation, "INFORMATION"
End Sub

Et j'ai essayer mais en vain de rétablir le focus sur le control
dont




l'erreur avait eu lieu.

Est il donc possible de le faire? Je vous remercie d'avance,
Ouille