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.
7 mars 2013 à 10:10
merci
21 mai 2008 à 19:54
10/10
7 avril 2008 à 09:39
Mais j'ai quels moyens pour détecter s'il sagit d'un "Cancel" ou d'un "ok" en vb2005?
Merci.
5 avril 2008 à 12:56
5 avril 2008 à 10:32
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.