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

Lazarey Messages postés 3239 Date d'inscription   Statut Membre Dernière intervention   -  
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   -
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

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
integer
1
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
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
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
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
le père
 
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
DarkAurora Messages postés 417 Date d'inscription   Statut Membre Dernière intervention   27
 
tu peut mettre bool ou alors string aussi
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Lazarey Messages postés 3239 Date d'inscription   Statut Membre Dernière intervention   745
 
Ok, merci les gars, j'essaye.
0
blux Messages postés 27106 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Salut,

ça renvoie un numérique.
0
DarkAurora Messages postés 417 Date d'inscription   Statut Membre Dernière intervention   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
Will
 
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
Will
 
Sans oublier le End Sub

Au fait bonjour ^^
0
Lazarey Messages postés 3239 Date d'inscription   Statut Membre Dernière intervention   745
 
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
Will
 
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
Lazarey Messages postés 3239 Date d'inscription   Statut Membre Dernière intervention   745
 
Enfait, je sais pas car il y a aussi les "vbcancel", et autres.
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
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