Detecter cancel sur l'inputbox

Soyez le premier à donner votre avis sur cette source.

Snippet vu 25 153 fois - Téléchargée 35 fois

Contenu du snippet

Je n'ai peut-être pas suffisamment cherché, mais je n'ai pas vu de code expliquant comment on détectait l'appui sur Cancel dans une InputBox.
Car si on appuie sur OK avec une chaine vide, ou si on appuie sur Cancel, le retour de l'InputBox est le même : une chaine vide.

Seule la fonction StrPtr(), qui renvoie un pointeur sur chaine permet de savoir ce qui a réellement été renvoyé.
Pour une chaine vide, StrPtr(chaine)<>0
alors que si on appuie sur Cancel, on renvoie un pointeur nul.

Source / Exemple :


Dim sTemp As String

    sTemp = InputBox("Appuyer sur OK ou Cancel, mais sans taper de texte dans l'InputBox.")

    If StrPtr(sTemp) = 0 Then
       MsgBox "Vous avez appuyé sur Cancel."
    End If
    
    ' MsgBox sTemp ' aurait renvoyé une chaine vide quel
    ' que soit le bouton appuyé si on n'a rien entré dans l'InputBox.

A voir également

Ajouter un commentaire Commentaires
sehfat Messages postés 3 Date d'inscription dimanche 9 novembre 2003 Statut Membre Dernière intervention 7 mars 2013
7 mars 2013 à 10:10
ca marche bien
merci
cs_hippo92210b Messages postés 59 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 9 décembre 2009
21 mai 2008 à 19:54
Génial! C'est vraie que c'érait plutôt nul cet faille mais elle est comblé !

10/10
cs_Petiote Messages postés 14 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 8 février 2010
7 avril 2008 à 09:39
Vi c'est vrai, je n'avais pas vraiment compris le but du code (sauf après avoir relu 2 fois).
Mais j'ai quels moyens pour détecter s'il sagit d'un "Cancel" ou d'un "ok" en vb2005?
Merci.
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 23
5 avril 2008 à 12:56
petiote> Tu ne détectes donc pas l'appui sur Cancel ;op
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
5 avril 2008 à 10:32
Bonjour,

Visiblement, Petiote, tu n'as pas compris la subtilité du code... Après, vérification avec VB2005, "sTemp.length" a exactement le comportement de "Len(sTemp)". Donc, ce que tu proposes fonctionne si du texte est présent, mais si le champ est vide, comme demande Econs, ton code ne peut pas détecter le OK...

Amicalement,
Us.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.