TabIndex sur Userform VBA

Bonjour,

j'ai un problème avec mon code, j'essaye de faire en sorte que lorsque je clique sur "entrer" ou valider, mon curseur se remet sur la marge, actuellement quand j'ouvre mon Userform, le curseur est bien sur la marge et je peux saisir directement la valeur mais quand je clic sur valider ou entrer, je suis obligé de re-cliquer sur marge pour rentrer une nouvelle donner.

j'aimerais que ce soit automatique

Private Sub FB_OK_Enter()

Dim Z_Marge As Variant
Dim Z_MargeOk As Double
Dim Z_Lig As Integer

Z_Lig = 32

If FC_Marge.Value = "" Then
MsgBox ("Merci de saisir une valeur")
Else
Z_MargeOk = (Replace(FC_Marge, "%", "") * 1) / 100
Z_MargeOk = 1 - Z_MargeOk
End If

    Do While Cells(Z_Lig, 11).Value <> "" And Z_MargeOk <> 0
        If Cells(Z_Lig, 14).Value = "" Or Cells(Z_Lig, 14).Value = 0 Then
        Cells(Z_Lig, 14).Value = Cells(Z_Lig, 10).Value
        End If
If FC_Marge.Value <> "" Then
Cells(Z_Lig, 10).Value = Cells(Z_Lig, 14).Value / Z_MargeOk
        Z_Lig = Z_Lig + 1
        End If

    Loop

If FB_OK = Enter Then
MsgBox ("test")
FC_Marge.Value = ""
FC_Marge.TabIndex = 0
FC_OK = 1
End If

End Sub<pre>If FB_OK = Enter Then
MsgBox ("test")
FC_Marge.Value = ""
FC_Marge.TabIndex = 3
FC_OK = 1
End If</pre>
image

Merci par avance,

Goat

Bonjour

Essayez ceci dans le code

FC_Marge.SetFocus

Cordialement

Bonjour,

J'ai testé pas mal de truc mais rien ne marche, je le met peut-etre au mauvais endroit :

If FB_OK = Enter Then
MsgBox ("test")
FC_Marge.Value = ""
FC_Marge.TabIndex.SetFocus = 0
End If

Goat

Je vous ai donné l'instruction à ajouter, pourquoi vous faites autrement ?

vous ajoutez ce que je vous ai donné avant le END IF

j'ai essayé et ca me met le bouton quitter,

image

j'ai essayé et ca me met le bouton quitter,

??? le bouton quitter ??

Quel rapport avec votre textbox FC_Marge ?

Ba quand je rentre la valeur, que je clique sur entrer ça fait mon calcul de marge. Quand je ré-clique sur entrer ça va sur le bouton "quitter" la croix rouge. Au lieu de me remettre sur ma marge

Pas facile sans voir votre fichier

Mais cette ligne IF FB_OK = Enter ? Pourquoi "Enter"
Vous avez essayé sans mettre le IF ?

Ci-joint le fichier :

J'aimerais ou boucle ou alors le if permet de toujours renvoyer à l'indextab marge quand je rentre une valeur

Je ne vois pas de soucis avec votre Usf Marge_all_lignes.
Si on l'ouvre puis on entre une valeur, on clique sur le Ok (bouton vert), le code est exécuté et le curseur se positionne bien dans la texbox

PAr contre je me demande toujours le pourquoi de cette ligne If FB_OK = Enter Then

en dessous du LOOP, vous pouvez simplement mettre ceci

MsgBox ("test")
FC_Marge.Value = ""
FC_Marge.SetFocus

Quand on clique sur le bouton valider à la souris effectivement le curseur revient dans la Texbox, moi j'aimerais que quand je fais entré avec la touche, le curseur revient dans la textbox, or la il va sur le bouton fermer "la croix"

Re

Dans cette ligne -->

FC_Marge.TabIndex = 3

remplacez le 3 par 1.

Ensuite supprimez votre IF FB_OK = ENTER

Edit : plutot que mettre une instruction avec TabIndex, vous pouvez aussi la remplacer par ceci --> FB_OK.Default = TRUE

Merci beaucoup Dan,

ca marche nickel :)

Goat

Rechercher des sujets similaires à "tabindex userform vba"