Bonjour à tous,
Je souhaite résoudre un petit soucis que je ne comprend pas.
Pour résumé je teste la valeur du Textbox 'TB_ID' et si l'ID n'existe pas dans la base ou que ce qui est saisi n'est pas au format numérique je fais un msgbox puis je supprime le contenu du Textbox et je fais un setfocus sur 'TB_ID'.
Et c'est là que le problème apparaît : Du fait que le code est sur l'action AfterUpdate du textbox je dois sélectionner autre chose ou faire entrer. Tout le code fonctionne sauf le setfocus qui m'envoi sur ce que j'ai saisi pour déclencher AfterUpdate ou sur mon combobox suivant si j'ai fais entrer.
En passant il y a un deuxième truc que je n'ai pas saisi : je suis obligé de passer par la variable x pour la valeur Sheets("BDMat").Range("A65000").End(xlUp).Row sinon ce n'est pas traité. Il me semblait que .row possédait une valeur de type Long ce qui devrait fonctionner non? J'ai résolu en mettant x en tant qu'integer mais je souhaiterai comprendre.
Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Dim x As Integer x = Sheets("BDMat").Range("A65000").End(xlUp).Row + 1 If Me.TB_ID.Value > 1 And Me.TB_ID.Value < x Then MsgBox (Sheets("BDMat").[A65000].End(xlUp).Row) Else If Not IsNumeric(Me.TB_ID.Value) Then MsgBox "L'ID est obligatoirement au format numérique !", vbCritical Me.TB_ID.Value = "" 'Vide le control Me.TB_ID.SetFocus 'renvoi le focus sur la case ID Exit Sub Else MsgBox "L'ID entrée n'existe pas !", vbCritical Me.TB_ID.Value = "" 'Vide le control Me.TB_ID.SetFocus 'renvoi le focus sur la case ID Exit Sub End If End If
Partager