[VBA] Type d'une variable réponse de msgbox

Fermé
Signaler
Messages postés
3231
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
21 mai 2012
-
Messages postés
16546
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
12 janvier 2022
-
Bonjour à tous,

J'ai une petite question à vous poser. Je fais du VBA et je voudrais savoir quel est le type d'une variable réponse à une msgbox ?

Exemple :

Dim rep as ********

rep = msgbox("Allez-vous bien ?",vbyesno)


Que dois-je mettre à la place des étoiles dans mon code ? Je peux mettre 'variant', mais je trouve que ce n'est pas terrible.

Merci à vous !!!

13 réponses

Messages postés
18258
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 janvier 2022
997
integer
1
Messages postés
16546
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
12 janvier 2022
3 258
Bonjour

X est un tyupe "long" que l'on inscrive "vbOK" ou 0 car vbOK est une constante de valeur 0

Ci joint tableau Word avec les valeurs
https://www.cjoint.com/?fErSCp8PYt

Petite astuce si on hésite sur le type d'une variable( hésiter, je sais bien faire...)
avant de mettre en option Explicit:
sélectionner la variable (par ex "x") et debogage sélectionner un espion
faire la macro en pas à pas (F8)
le statut de "x" va passer de variant à long.
1
Messages postés
18258
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 janvier 2022
997
et avec option explicit, si on déclare la variable sans type, cela ne permet-il pas de "découvrir" le type à l'éxécution ?
0
Messages postés
16546
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
12 janvier 2022
3 258 >
Messages postés
18258
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 janvier 2022

oui, tout à fait, tu as raison. C'est une mauvaise habitude de ma part!
(je fais souvent des variables "test" provisoires lors de l'élaboration et j'ai la flemme de déclarer pour une durée de vie provisoire)
Bon Dimanche
0
Bonjour

C'est écrit dans l'aide de VBA. Mets le curseur sur le mot Msgbox dans ton programme, et appuie sur la touche F1.
0
Messages postés
417
Date d'inscription
lundi 26 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2013
27
tu peut mettre bool ou alors string aussi
0
Messages postés
3231
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
21 mai 2012
737
Ok, merci les gars, j'essaye.
0
Messages postés
23846
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
15 janvier 2022
3 162
Salut,

ça renvoie un numérique.
0
Messages postés
417
Date d'inscription
lundi 26 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2013
27
et un string peut très bien stocké un numérique, et les bool il ne met pas d'erreur mais je suis d'accord ça ne sert à rien
0
théoriquement tu n'a même pas a déclarer cette variable ! eh oui !!!

Sub Va_t_il_bien ()

rep = msgbox("Allez-vous bien ?",vbyesno,"Ca va ?")

If rep = VbYes Then
x = MsgBox ("Moi aussi !",VbOKOnly,"Et moi !")
Else If rep = VbNo Then
x2 = Msgbox ("Moi non plus !",VbOKOnly,"Et moi !")

tu vera ça marche très bien !!!
0
Sans oublier le End Sub

Au fait bonjour ^^
0
Messages postés
3231
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
21 mai 2012
737
Salut,

Oui, mais moi je met toujours 'option explicit' en début de mes procédures. Donc je dois tout déclarer. Ca évite de chercher des heures quand on fait une erreur en écrivant le nom des variables dans le programme.
0
Ah ok pas de probleme !
Je pense qu'integer suffit car VbOK = 1 et VbNo = 0c (je ne suis pas sur du chiffre mais ça renvoie un nombre !)
ALors bonne continuation !
0
Messages postés
3231
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
21 mai 2012
737
Enfait, je sais pas car il y a aussi les "vbcancel", et autres.
0
Messages postés
16546
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
12 janvier 2022
3 258
Excusez moi je m'étais trompé de tableau :#p
https://www.cjoint.com/?fEtEJHhpBJ

vbOk=1 !!!!
pour des raisons de maintenance la constante est plus lisible que le nombre.
0