begin process at 2012 02 16 20:35:46
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Control

 > DETECTER CANCEL SUR L'INPUTBOX

DETECTER CANCEL SUR L'INPUTBOX


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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 :17 955

Auteur : econs

Ecrire un message privé
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 :

 Sources du même auteur

[ASTUCE] MESSAGEBOX QUI N'ARRETE PAS LE PROCESSUS COURANT
Source avec Zip SUBCLASSING - RÉCUPÉRER PLUS D'EVENEMENTS.
Source avec Zip Source avec une capture TRI NUMÉRIQUE LISTBOX COMBOBOX
Source avec Zip Source avec une capture PAINTFORM SANS API
VBA EXCEL IMPRESSION - FAIRE TENIR LES DONNÉES SUR MOINS DE ...

 Sources de la même categorie

Source avec Zip COMMUNICATION MODBUS MASTER par sergelapointe
Source avec Zip Source avec une capture DÉPLACEMENT AVEC FLÈCHES DANS UN PAVÉ DE TEXTBOX 9X9 DYNAMIQ... par EhJoe
Source avec Zip Source avec une capture Source .NET (Dotnet) CONTROLSTARS EN RÉPONSE À JAKNIGHT007 par bigboss9
Source avec Zip Source avec une capture Source .NET (Dotnet) CALENDRIER ANNUEL NORME ISO par Prog1001
Source avec Zip Source avec une capture Source .NET (Dotnet) CONTROLE STARS par jaknight007

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture FORMULES ÉLECTRONIQUE par Jeromedu79
Source avec Zip Source avec une capture Source .NET (Dotnet) VB10 - INPUTBOX PERSONNALISABLE POUR VOS PROJETS par Duke49
Source avec Zip Source .NET (Dotnet) INPUTBOX PERSONNALISABLE AVEC LE CODE SOURCE VB par Patrice99
Source avec Zip Source .NET (Dotnet) CONTRÔLER L'AUTORUN DE WINDOWS XP (ET SUPÉRIEUR) ET LES NOTI... par ShareVB
Source avec Zip Source avec une capture GESTIONNAIRE FILM VB6 (LISTBOX, SAUVEGARE DANS FICHIERS TEXT... par Fjordass

Commentaires et avis

Commentaire de yoman64 le 10/05/2005 17:36:36

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

Commentaire de MasterHack le 10/05/2005 19:24:50

nice,vraiment ;)

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

Commentaire de jrbleboss le 11/05/2005 20:38:14

Oui c'est simple mais pas con.

Commentaire de the mentor le 13/05/2005 04:43:11

Nice :D
10/10 bien penser

Commentaire de Monitech le 15/05/2005 22:58:15

bravo , bien penser

Commentaire de kronemburg le 10/08/2005 13:06:35

Génial

Commentaire de us_30 le 21/08/2005 00:43:41

Impeccable ! 10/10 ! Vraiment bien penser.

Us.

Commentaire de violent_ken le 30/10/2006 12:46:44

Yop, je prend ;)
@+

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

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

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.

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.

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.

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.

Commentaire de okonkole le 23/05/2007 10:12:52

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

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 ;-)

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

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.

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

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

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/

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.

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 ;)

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

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 ?

Commentaire de Petiote le 04/04/2008 15:37:11

Salut,

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

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.

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

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

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.

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 [ 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 *** 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) 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...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,136 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales