Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

desactiver croix dans inputbox

janus51

XLDnaute Nouveau
bonjour ,

comment désactiver la croix d'un input box ou comment empecher la fermeture de l'inputbox par la croix

merci de vos réponses
janus
 
G

Guest

Guest
Re : desactiver croix dans inputbox

bonjour Janus,

Si le but est d'empêcher l'utilisateur de renvoyer une valeur nulle, tu peux faire quelque chose comme ceci:

Code:
    Dim rep As String
    Do While rep = ""
        rep = InputBox("Entrez une valeur")
    Loop

Tant que l'utilisateur n'a pas rentré une valeur la boîte est affichée.

bonsoir
 

janus51

XLDnaute Nouveau
Re : desactiver croix dans inputbox

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
 
G

Guest

Guest
Re : desactiver croix dans inputbox

Re bonjour Janus,

Alors le plus simple est de créer un userform personnalisé et d'utiliser son évènement QueryClose comme ceci:

Code:
Private Sub Userform_QueryClose(Cancel As Integer, CloseMode As Integer)
      If CloseMode = vbFormControlMenu Then Cancel = True
End Sub

A bientôt
 

janus51

XLDnaute Nouveau
Re : desactiver croix dans inputbox

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?
 
G

Guest

Guest
Re : desactiver croix dans inputbox

Janus,

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.

A+
 

myDearFriend!

XLDnaute Barbatruc
Re : desactiver croix dans inputbox

Bonsoir janus51, Hasco, le Forum,

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
Cordialement,
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…