merci de la réponse mais ça ne fct pas dans mon cas; c'est un nb que je dois rentrer dans l'input box , et mon programme ne fct que si dim rep as long.
par ailleurs meme si l'utilisteur rentre un nombre dans l'input , je veux empecher qu'il clique sur la croix
Merci Hasco de ta solution , mais je voulais éviter cette solution et rester dans le cadre de l'inputbox.
Précision est il possible d'intercepter le bouton annuler du inputbox?
Directement par VBA, je ne pense pas. Par les API Windows, sûrement possible mais cela mets en oeuvre des choses un peu compliquées pour le résultat voulu.
Si tu veux pouvoir contrôler facilement le type de données saisi dans une InputBox (numérique dans ton cas), il est souvent plus simple d'utiliser non pas la fonction InputBox, mais la méthode du même nom :
Code:
[COLOR=NAVY]Dim[/COLOR] Rep [COLOR=NAVY]As Variant
Do[/COLOR]
Rep = Application.InputBox("Entrez un nombre", [COLOR=NAVY]Type[/COLOR]:=1)
[COLOR=NAVY]Loop Until Not[/COLOR] VarType(Rep) = vbBoolean
Type=1 pour les nombres.
Et si tu veux absolument que la variable Rep soit de type Long :
Code:
[COLOR=NAVY]Dim[/COLOR] R [COLOR=NAVY]As Variant
Dim[/COLOR] Rep [COLOR=NAVY]As Long
Do[/COLOR]
R = Application.InputBox("Entrez un nombre", [COLOR=NAVY]Type[/COLOR]:=1)
[COLOR=NAVY]Loop Until Not[/COLOR] VarType(R) = vbBoolean
Rep = R