XL 2010 Forcer le focus a rester dans un Textbox apres validation

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

aurelio.ewane

XLDnaute Occasionnel
Bonjour les Excelliste, J'explique mon problème

Jai un Listbox et un Textbox
En fait je voudrais modifier une colonne par exemple la colonne 2 de mon Listbox qui contient une liste de données sur plusieurs lignes et plusieurs colonnes
Mon soucis est le suivant: Je voudrais que lorsque je selectionne une ligne de mon Listbox , la donnée contenue dans la ligne selectionée à la colonne 2 s'affiche dans mon Textbox et que ce le Textbox recoive le focus en modifant par exemple cette valeur dans le Textbox et an validant par Entrée que la nouvelle valeur du Textboxmodifie l'ancienne valeur contenu dans le Listbox et que le Listindex du Listbox (Cest a dire la selection s'incremente d'un) et permattant ainsi a la ligne suivant du Listbox detre selectionné et le Textbox recevant la valeur contenue dans la colonne 2 de cette nouvelle Ligne et recevant aussi le focus pour une eventuelle modification...

Le problème cest que je ne veux que les valeur numeriques comprise entre 0 et 20 et aussi par exemple les caracteres telque "ABS", "M"
Lorsque une mauvais saisie est faite envoyez un message d'erreur (un msgbox) et le focus reste dans le Textbox

Merci a tous
 
V
Oui jenvoie un fichier
genre cest juste un listbox et un Textbox
Voila un Fichier



Private Sub ListBox1_Click()
Me.TextBox1.Value = Me.ListBox1.List(Me.ListBox1.ListIndex, 1)
Me.TextBox1.SetFocus
Me.TextBox1.SelStart = 0
Me.TextBox1.SelLength = Len(Me.TextBox1.Text)
Me.TextBox1.SetFocus
End Sub



Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
If IsNumeric(Me.TextBox1.Value) Then
Me.ListBox1.List(Me.ListBox1.ListIndex, 1) = Me.TextBox1.Value
Me.ListBox1.ListIndex = Me.ListBox1.ListIndex + 1
Me.TextBox1.SetFocus
Me.TextBox1.SelStart = 0
Me.TextBox1.SelLength = Len(Me.TextBox1.Text)
Me.TextBox1.SetFocus

Else
MsgBox "Erreur de Saisie"
Me.TextBox1.SetFocus
Me.TextBox1.SelStart = 0
Me.TextBox1.SelLength = Len(Me.TextBox1.Text)
Me.TextBox1.SetFocus

End If
End If

End Sub

Private Sub UserForm_Initialize()
Dim Sh1 As Worksheet
Set Sh1 = ThisWorkbook.Sheets("Base")
Me.ListBox1.Clear
Me.ListBox1.RowSource = ""

Me.ListBox1.List = Sh1.Range("A5:C15").Value
Me.ListBox1.ColumnCount = 3
Me.ListBox1.ColumnWidths = "50;100;100"
Me.TextBox1.Value = ""


Set Sh1 = Nothing
End Sub
 

Pièces jointes

Vec
Re,
Vous voulez pas mal de chose, avez comment un code ou pas?
Re,
Vous voulez pas mal de chose, avez comment un code ou pas?
Avec un code voila mon code prière de jetter un coup d'oeil


Private Sub ListBox1_Click()
Me.TextBox1.Value = Me.ListBox1.List(Me.ListBox1.ListIndex, 1)
Me.TextBox1.SetFocus
Me.TextBox1.SelStart = 0
Me.TextBox1.SelLength = Len(Me.TextBox1.Text)
Me.TextBox1.SetFocus
End Sub



Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
If IsNumeric(Me.TextBox1.Value) Then
Me.ListBox1.List(Me.ListBox1.ListIndex, 1) = Me.TextBox1.Value
Me.ListBox1.ListIndex = Me.ListBox1.ListIndex + 1
Me.TextBox1.SetFocus
Me.TextBox1.SelStart = 0
Me.TextBox1.SelLength = Len(Me.TextBox1.Text)
Me.TextBox1.SetFocus

Else
MsgBox "Erreur de Saisie"
Me.TextBox1.SetFocus
Me.TextBox1.SelStart = 0
Me.TextBox1.SelLength = Len(Me.TextBox1.Text)
Me.TextBox1.SetFocus

End If
End If

End Sub

Private Sub UserForm_Initialize()
Dim Sh1 As Worksheet
Set Sh1 = ThisWorkbook.Sheets("Base")
Me.ListBox1.Clear
Me.ListBox1.RowSource = ""

Me.ListBox1.List = Sh1.Range("A5:C15").Value
Me.ListBox1.ColumnCount = 3
Me.ListBox1.ColumnWidths = "50;100;100"
Me.TextBox1.Value = ""


Set Sh1 = Nothing
End Sub
 

Pièces jointes

Je me suis trompé, j'ai confondu avec UserForm_QueryClose pour TextBox1_Exit c'est ByVal Cancel As MSForms.ReturnBoolean
Ils auraient quand même pu adopter le même système pour les deux, même si à bien y réfléchir ça aboutit exactement au même code machine.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour