Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

DETECTER CANCEL SUR L'INPUTBOX


Information sur la source

Catégorie :Control Classé sous : cancel, inputbox, input, annuler Niveau : Débutant Date de création : 10/05/2005 Date de mise à jour : 12/05/2005 08:25:19 Vu : 11 112

Note :
9,25 / 10 - par 12 personnes
9,25 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (31)
Ajouter un commentaire et/ou une note

Description

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

  • 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.

    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.

Historique

12 mai 2005 08:25:19 :

Commentaires et avis

signaler à un administrateur
Commentaire de yoman64 le 10/05/2005 17:36:36

Plutot bien ... je vais me coucher moin niaiseux ce soir :P

signaler à un administrateur
Commentaire de MasterHack le 10/05/2005 19:24:50

nice,vraiment ;)

signaler à un administrateur
Commentaire de Pingouin le 10/05/2005 22:00:18

Ouep bien vu ! Je n'aurais jms pensé a ca comme quoi il y en a toujours plus dans 430 015 têtes de membres CodeS SourceS que dans une ;-)

@+

Pingouin

signaler à un administrateur
Commentaire de jrbleboss le 11/05/2005 20:38:14

Oui c'est simple mais pas con.

signaler à un administrateur
Commentaire de the mentor le 13/05/2005 04:43:11

Nice :D
10/10 bien penser

signaler à un administrateur
Commentaire de Monitech le 15/05/2005 22:58:15

bravo , bien penser

signaler à un administrateur
Commentaire de kronemburg le 10/08/2005 13:06:35

Génial

signaler à un administrateur
Commentaire de us_30 le 21/08/2005 00:43:41

Impeccable ! 10/10 ! Vraiment bien penser.

Us.

signaler à un administrateur
Commentaire de violent_ken le 30/10/2006 12:46:44

Yop, je prend ;)
@+

signaler à un administrateur
Commentaire de mathben le 09/12/2006 20:03:10

Ouais, j'essaie d'appliquer ton code.
C'est quoi StrPtr ?
aussi, si la personne écrit 0 dans la barre d'écriture, il va avoir un erreur?
moi je veux que le monde rentre des notes d'examens, si ils font un erreur, je veux leur avertir et si ils font cancel car ils doivent recommencer, je dois le savoir!
merci

signaler à un administrateur
Commentaire de mathben le 09/12/2006 20:07:01

Désolé, je n'avais pas vue la définition de StrPtr!
donc, si la personne marque rien dans la barre, je veux être capable de lui dire qu'il a rien écrit et qu'il doit recommencer.
Si la personne fait cancel, je dois être capable de le déterminer.

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.

Si la personne marque rien, le pointeur va être nul?
Pareille que si il appuie sur cancel?

Est-ce que j'ai raison?  Merci

signaler à un administrateur
Commentaire de econs le 10/12/2006 18:27:27 administrateur CS

Non, voici les cas d'usages :

If sTemp = "" And StrPtr(sTemp) <> 0 Then
' L'utilisateur n'a rien entré.
Else
If sTemp = "" And StrPtr(sTemp) = 0 Then
  ' L'utilisateur a cliqué sur Annuler
Else
  ' L'utilisateur a entré quelque chose.
End If
End If

Tout est pourtant écris dans la description.

signaler à un administrateur
Commentaire de mathben le 10/12/2006 18:30:07

QUand j'utilise la fonction StrPtr(), vb.net ne veut pas le détecter?
il dit que je n'ai pas déclarer ma variable.

signaler à un administrateur
Commentaire de us_30 le 10/12/2006 22:06:05

Salut,

D'autre pourront confirmer mes propos, je pense, mais en VB.NET et autre version, il convient de vérifier si StrPtr() est une fonction encore présente... Sur certaines versions récentes en VB, cette fonction a été supprimée... ce qui explique le message d'erreur de Mathben...

Amicalement,
Us.

signaler à un administrateur
Commentaire de econs le 11/12/2006 09:52:15 administrateur CS

Y'a toutes les chances que StrPtr n'existe plus en VB.NET.
Elle doit être remplacée par autre chose.

signaler à un administrateur
Commentaire de okonkole le 23/05/2007 10:12:52

Depuis le temps que je me demandais comment faire...
Merci

signaler à un administrateur
Commentaire de mitsh666 le 27/07/2007 09:22:34

Hello,

top ton code. Cela dis, j'ai du le modifié un peu pour l'utilisé sur vbscript. Voici ce que ça done :

Dim stemp

sTemp = inputbox("tapez votre nom","Identité")
If isEmpty(sTemp) Then
    MsgBox "Vous avez appuyé sur Cancel."
else
    MsgBox "Vous avez appuyé sur Ok"
End If


A+ et merci encore pour avoir poster ton génie ;-)

signaler à un administrateur
Commentaire de econs le 27/07/2007 09:32:09 administrateur CS

Effectivement, tu n'auras pas StrPtr en VBS, mais en VB6.
Drôlement pratique le isEmpty, un peu comme le isset de PHP

signaler à un administrateur
Commentaire de us_30 le 28/07/2007 13:32:28

Un 10/10 aussi pour Mitsh666 !  -;):

Une p'tite suggestion... Ces petites astuces auraient-elles pas une place sur codyx ?

Amicalement,
Us.

signaler à un administrateur
Commentaire de Exploreur le 18/01/2008 20:42:10

Salut,

On peut aussi utliser : LenB

Mais je pense que j'arrive aprés la guerre..lol...

A+
Exploreur

signaler à un administrateur
Commentaire de mitsh666 le 21/01/2008 09:46:43

Salut Us_30,

merci pour le 10/10, mais ce n'est que de l'adaptation ;) Le but est d'avoir un peut tout ensemble.

Pour codyx, c'est quoi? :|

A+

Mitsh

signaler à un administrateur
Commentaire de yoman64 le 21/01/2008 12:10:28

C'est un lieu pour les snippets (bout de code) de tout les langages :)

http://codyx.org/

signaler à un administrateur
Commentaire de us_30 le 21/01/2008 21:38:29

Bonsoir à tous,

Yoman64 a parfaitement répondu. Une autre lien se trouve tout en haut de cette page à droite, en gris clair "Snippets"... Moi, je verrai bien ces astuces sur Codyx, mais je laisserai Econs en décider... Une adaptation ? oui, mais bien pensé aussi...

Quant à LenB, je crois Explorer qu'on ne puisse pas faire exactement la même chose...

Amicalement,
Us.

signaler à un administrateur
Commentaire de Petiote le 04/04/2008 14:22:18

kikoo all,

Pour ma part je suis en vb.net sous VS 2005 et aucune de vos méthodes n'a fonctionnée alors j'ai bidouillée moi aussi

If (ajoutenqteannee.Length) = 0 Then
     MsgBox "Vous avez appuyé sur Cancel."
End If

Voilou ;)

signaler à un administrateur
Commentaire de Petiote le 04/04/2008 14:24:31

Re,
Oups, à la place de mon "ajoutenqteannee" il faut bien sûr mettre "sTemp".
@pluche

signaler à un administrateur
Commentaire de econs le 04/04/2008 15:34:18 administrateur CS

Et si tu ne tapes aucune valeur, et que tu cliques sur le bouton OK ?

signaler à un administrateur
Commentaire de Petiote le 04/04/2008 15:37:11

Salut,

ça affiche la messagebox que tu annules ou valides un champs vide.

signaler à un administrateur
Commentaire de us_30 le 05/04/2008 10:32:01

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.

signaler à un administrateur
Commentaire de econs le 05/04/2008 12:56:57 administrateur CS

petiote> Tu ne détectes donc pas l'appui sur Cancel ;op

signaler à un administrateur
Commentaire de Petiote le 07/04/2008 09:39:21

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.

signaler à un administrateur
Commentaire de hippo92210b le 21/05/2008 19:54:17 10/10

Génial! C'est vraie que c'érait plutôt nul cet faille mais elle est comblé !





10/10

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Input box comment activer 'annuler' [ par tom6500 ] Bonjour.J'ai créer une inputbox,mais lorsque j'appui sur annuler il me marque "erreur d'execution 13".Dans ma ligne de commande j'ai ecrit :a = (Input Qst Inputbox pour débutant [ par wice ] Bonjour,je travaille sous vbexcel et j aimerais savoir comment gerer le bouton Annuler d une inputbox.Car j ai une erreur d'execution '13' type incomp inputbox et le cancel [ par tomsower ] Bonjour,voila j'aimerais que la question soit repeter tant qu'il n'y a rien de saisis mais bien sur que le inputbox arrete de s'afficher si on appuit [VB] Souci avec InputBox [ par Aurnukem ] Salut,Voici mon petit souci avec une inputBox, je voudrais rentrer une valeur pour mon programme que je stockerai dans une variable. Mais le prob quan InputBox : annuler [ par saeko ] Quelle valeur retourne la inputbox si on fait 'Annuler' ? j'aimerais pouvoir avoir une réponse différente si on fait Ok ou Annuler...Merci d'avance *** INPUTBOX + ANNULER *** [ par Heny ] Salut a tous je voudrai si possible un code qui me permet de désactiver le boutton Annuler d'un inputbox.et merci d'avance ;o) inputbox [ par miss07 ] Bonjour, Voila j'ai un petit soucis et j'espere que qq1 pourra m'aider ! alors voila j'utilise une inputbox tout fonctionne sauf quand l'utilisateur c LE Annuler" ds un inputbox [ par piou88 ] Bonjou les gens, Je voulez savoir si yavai un code pour ke quan on appui sur le bouton "annuler" du inputbox ca quitte le progra excel - vba - Bouton Cancel - Comment annuler les évènements dans le UserForm. [ par michels2011 ] J'ai un problème avec les boîtes de dialogues en excel. Quand je clique sur le bouton Cancel, les évènements des TextBox s'exécute. Comment annuler ce InputBox *** [ par VARACH ] Bjs , j ouvre un input box et je voudrais que ce qui est saisi soit remplacer par des *** mais que le text reel soit bien transmis .. je m explique te


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,593 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.