Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Redonner focus

11 réponses
Avatar
JulieH
Bonjour,

Je galère depuis un certain temps avec un problème particulier : dans
un Userform, après gestion d'une erreur, je n'arrive pas à redonner la
main à la TextBox souhaitée.

Plutôt que de longs discours, je me suis décidée à construire un
micro-exemple. Si quelqu'un veut bien avoir la gentilesse de regarder.
http://cjoint.com/?iiir0uoFaR

Merci d'avance.

Julie

1 réponse

1 2
Avatar
JulieH
Cela semble bien être mon Userform qui pose problème car j'ai exporté -
importé le tien et cela fonctionne.

J'aimerais cependant bien comprendre ce qui se passe car j'ai la même
chose dans mon fichier d'origine et là, refaire de nombreux userform
serait une autre paire de manches.

Julie

Excuse-moi de revenir à nouveau mais je ne m'en sors pas.

Je vois bien que dans ton fichier, tout fonctionne, or quand j'essaie de
refaire la même chose, cela ne se passe pas comme prévu.

Le principal problème est le suivant :
- Quand je passe mon useform en Modal, il n'a plus le même
comportement : il ne met pas à jour directement la table.
- Si j'essaie de le déplacer, je le trouve en double en dessous.
- Lorsque je ferme par la croix, tout se met à jour.

J'ai remis comme exemple mon fichier de ce matin dans lequel je n'ai pas
mis en place tes dernières modifications.
http://cjoint.com/?iiqeTPKdc8

Où est mon erreur ?

Merci de ta patience.

Julie



http://cjoint.com/?iipbvHDoxa

JB
On 8 août, 13:39, JulieH wrote:
Je crois bien que ce que tu proposes correspond à ce que j'avais avant
ce matin (sans la ligne Cancel = True).

Dans ce cas-là, il fonctionne parfaitement avec le bouton "Corriger"
mais pas avec "Valider" car il ne revient pas à Textbox1.

Julie




http://cjoint.com/?iinbrLpgnO
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
y = Me.TextBox1.Value
If Me.TextBox1 <> "" Then
Set x = [Feuil2].[A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
If x Is Nothing Then
Texte = "L'animal avec le numéro de tatouage " & y & vbNewLine &
" n'existe pas dans l'élevage."
MsgBx1.LabMsgBx1.Caption = Texte
MsgBx1.Show
Me.TextBox1 = ""
TextBox1.SetFocus
Cancel = True
Else 'Gestion des données déjà saisies.
If Application.CountA(Cells(x.Row, 2).Resize(1, 3)) > 0 Then
For i = 2 To 4
Me("textbox" & i) = Cells(x.Row, i)
Next i
Texte = "Les données de la femelle " & y & vbNewLine & "
sont déjà saisies."
MsgBx2.LabMsgBx2 = Texte
MsgBx2.Show
End If
End If
End If
End Sub
JB
On 8 août, 12:34, JulieH wrote:
Non ce n'est pas nécessaire.
Pour mon message suivant, je me suis aperçue que j'avais mélangé du
code
de mon exemple avec mon code original.
J'ai donc reconstituer mon problème, ce sera plus clair :
http://cjoint.com/?iimFtCWHTg
Merci d'avance
Julie
Le mode non modal permet à l'opérateur d'accéder à la feuille de
calcul. Dans le cas présent, est-ce nécéssaire?
JB
On 8 août, 09:14, JulieH wrote:
Bonjour,
Merci encore une fois pour ton aide. Le mode Modal et
tout ce qui
l'entoure, ce n'est vraiment pas mon truc, je ne me suis jamais
vraiment
penchée sur son utilité.
Bonne journée
Julie
Bonjour,
Formulaire en mode Modal:
Private Sub CmdB1_UF6_Click()
Application.ScreenUpdating = True
Set x = [Feuil2].[A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
If Not x Is Nothing Then
For i = 2 To 4
If IsNumeric(Me("textbox" & i)) Then
Cells(x.Row, i) = CDbl(Me("textbox" & i))
Else
Cells(x.Row, i) = Me("textbox" & i)
End If
Me("textbox" & i) = ""
Next i
Me.TextBox1 = ""
End If
Me.TextBox1.SetFocus
End Sub
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
y = Me.TextBox1.Value
If Me.TextBox1 <> "" Then
Set x = [Feuil2].[A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
If x Is Nothing Then
Texte = "L'animal avec le numéro de tatouage " & y &
vbNewLine &
" n'existe pas dans l'élevage."
MsgBx1.LabMsgBx1.Caption = Texte
MsgBx1.Show
Me.TextBox1 = ""
TextBox1.SetFocus
Cancel = True
End If
End If
http://cjoint.com/?iiiU1lcvjE
JB
On 8 août, 08:18, JulieH wrote:
Bonjour,
Je galère depuis un certain temps avec un problème
particulier : dans
un Userform, après gestion d'une erreur, je n'arrive pas à
redonner la
main à la TextBox souhaitée.
Plutôt que de longs discours, je me suis décidée à
construire un
micro-exemple. Si quelqu'un veut bien avoir la gentilesse de
regarder.
http://cjoint.com/?iiir0uoFaR
Merci d'avance.
Julie- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte


des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des


messages précédents -
- Afficher le texte des messages précédents -
















1 2