Autres Fermer userform avec Enter

un internaute

XLDnaute Impliqué
Bonjour le forum
Dans la macro ci-dessous je voudrais fermer l'userform avec Enter ou Valider
En effet je tape le montant et j'ai l'habitude de faire Enter sinon par la croix
J'ai commencé mais pas pu y arriver (mis en commentaires)
Merci pour vos éventuels retours

Option Explicit
Dim Ligne As Long
Dim Msg As String

Private Sub Opb100_Click()
Me.TbMontant.Visible = False
Me.LbMontant.Visible = False
With Range("I" & Ligne)
.Value = 1
.Characters.Font.Underline = False
.NumberFormat = "00 %"
End With
Columns("I").AutoFit
End Sub

Private Sub OpbCB_Click()
Me.TbMontant.Visible = True
Me.LbMontant.Visible = True
Msg = "CB: "
With Range("I" & Ligne)
.Value = Msg & Format(Replace(Me.TbMontant, ".", ","), "#,##0.00 €")
.Characters(1, 3).Font.Underline = True
.Characters(4, 100).Font.Underline = False
.NumberFormat = "@"
End With
Columns("I").AutoFit
End Sub

Private Sub OpbChèque_Click()
Me.TbMontant.Visible = True
Me.LbMontant.Visible = True
Msg = "Chq: "
With Range("I" & Ligne)
.Value = Msg & Format(Replace(Me.TbMontant, ".", ","), "#,##0.00 €")
.Characters(1, 4).Font.Underline = True
.Characters(5, 100).Font.Underline = False
.NumberFormat = "@"
End With
Columns("I").AutoFit
End Sub

Private Sub TbMontant_Change()
Dim Pos As Integer
With Range("I" & Ligne)
Pos = InStr(1, .Value, ":")
.Value = Msg & Format(Replace(Me.TbMontant, ".", ","), "#,##0.00 €")
.Characters(1, Pos).Font.Underline = True
.Characters(Pos + 1, 100).Font.Underline = False
.NumberFormat = "@"
End With
Columns("I").AutoFit
End Sub

'Private Sub TbMontant_Exit(ByVal Cancel As MSForms.ReturnBoolean)
' Unload Me
'End Sub



Private Sub TbMontant_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr(1, "0123456789.,", Chr(KeyAscii)) = 0 And KeyAscii <> 8 Then
KeyAscii = 0
End If
End Sub

Private Sub UserForm_Initialize()
Ligne = ActiveCell.Row
Me.TbMontant.Visible = False
Me.LbMontant.Visible = False
Me.LbLigne.Caption = "Ligne " & Ligne
End Sub
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Utilisez la balise </> ( à droite de l'icone GIF ) pour le code c'est plus lisible.
Et un petit fichier test aurait été sympa.
En PJ un essai, le userform se ferme sur l'appui de la touche Entrée, avec :
VB:
Private Sub TextBox1_KeyDown(ByVal ToucheAppuyée As MSForms.ReturnInteger, ByVal Shift As Integer)
    If ToucheAppuyée = 13 Then  ' 13 code pour Entrée
        [D7] = UserForm1.TextBox1
        Unload UserForm1
    End If
End Sub
 

Pièces jointes

  • Test.xlsm
    16.3 KB · Affichages: 5

un internaute

XLDnaute Impliqué
Re sylvanu
Ce qu'il y a en commentaire dans la macro
VB:
'Private Sub TbMontant_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'  Unload Me
'End Sub

Si je met le code actif
Je coche Chèque et tape le montant 126.21€ je veux pouvoir passer d'un à l'autre Chèque ou CB ou inversement puis faire Enter pour fermer l'Userform
Car si je passe d'un à l'autre Chèque ou CB ça ferme l'userform
Je suis obligé de recommencer
cordialement

1690438854442.png
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Bien évidemment puisque c'est la demande : "Fermer userform avec Enter"
Le problème est que je ne vois pas comment faire la différence entre un "Entrée, c'est bon on peut sortir", et un "Entrée, Attend je change de mode de paiement".

Bis repetita :
Et un petit fichier test aurait été sympa.
Ca permet d'apporter une solution proche de l'appli, et surtout cela évite aux contributeurs de se retaper un fichier.

En PJ un essai simple. Ca marche si on entre une somme sans faire entrée, puis on sélectionne le choix, mais il faut revenir dans la somme pour faire Entrée.
Mais si on fait Entrée après avoir entré la somme alors on sort, bien évidemment.

Je trouve que vous vous créez beaucoup de soucis pour éviter un bouton VALIDER, ce qui résoudrait tout.

"Just for the fun", une autre approche en PJ2.
Au départ la Textbox est invisible et on demande de choisir un mode de paiement. Lorsque le choix est fait alors la textbox est visible. Mais ça reste une usine à gaz pour pas grand chose.
 

Pièces jointes

  • Test.xlsm
    17.9 KB · Affichages: 1
  • Test2.xlsm
    16 KB · Affichages: 3

Dranreb

XLDnaute Barbatruc
Bonjour.
D'habitude je prévoie un petit CommandButton CBnEntrée
Valida24².png
dont je mets à True la propriété Default
et un autre CBnEchap
Echap24².png
dont je mets à True la propriété Cancel
 

Pièces jointes

  • Echap24².png
    Echap24².png
    921 bytes · Affichages: 11
  • Echap24².png
    Echap24².png
    921 bytes · Affichages: 10
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 094
Messages
2 116 146
Membres
112 669
dernier inscrit
Guigui2502