Bonjour,
Quelque chose comme ceci.
Sub EssaiInput()
Dim iVar As Variant, Ok As Boolean
Do
iVar = InputBox("Saisissez un numéro chrono", "Référence de facture")
If StrPtr(iVar) = 0 Then
MsgBox "Vous avez annulé", vbCritical + vbOKOnly, "Annulation utilisateur"
Exit Sub
ElseIf iVar = vbNullString Then
MsgBox "Aucune saisie", vbCritical + vbOKOnly, "Pas de saisie utilisateur"
Else
If Not IsNumeric(iVar) Then
MsgBox "Merci de saisir un nombre", vbCritical + vbOKOnly, "Mauvaise saisie utilisateur"
ElseIf CInt(iVar) <> iVar Then
MsgBox "Merci de saisir un nombre entier", vbCritical + vbOKOnly, "Mauvaise saisie utilisateur"
ElseIf InStr(iVar, "+") Or InStr(iVar, "-") Then
MsgBox "Merci de saisir un nombre sans signe + ou -", vbCritical + vbOKOnly, "Mauvaise saisie utilisateur"
Else
Ok = True
End If
End If
Loop While Not Ok
End Sub
L'avantage de ma méthode est que tu peux y ajouter tous les tests nécessaires ...
Pour le coup, tu pourrais même la "sortir" de ta procédure pour en faire une fonction... Si intéressé, dis le