Fonction avec choix de réponse en parametres.

Résolu
Signaler
Messages postés
5
Date d'inscription
dimanche 19 janvier 2003
Statut
Membre
Dernière intervention
5 septembre 2007
-
Messages postés
5
Date d'inscription
dimanche 19 janvier 2003
Statut
Membre
Dernière intervention
5 septembre 2007
-
Bonjour, j'aimerais faire une fonction comme celle d'un MsgBox, je m'explique.

Exemple dans le MsgBox, nous donnons le titre que nous voulons et le deuxième paramètre que nous devons passer est basé sur un choix de réponse : MsgBoxStyle.AbortRetryIgnore, MsgBoxStyle.ApplicationModal et etc..

Quelqu'un à une idée comment créer une fonction avec un choix de réponse comme le MsgBox ??

Merci

9 réponses

Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
1
Je ne suis pas sur que c'est ce que Nos535 attendait. Il souhaite un certain nombre de réponses types.

Esai de mettre ça dans une feuille

Option Explicit


Public Enum ReponseType
Reponse1 = 0
Reponse2 = 1
End Enum


Public Function MaFonction(ByVal MonParam As Integer) As ReponseType
If MonParam > 5 Then
MaFonction = Reponse1
Else
MaFonction = Reponse2
End If
End Function


Private Sub Form_Load()
Dim Reponse As ReponseType
Reponse = MaFonction(2)
Debug.Print Reponse
End Sub

Bonne prog
++
3
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
salut,

tu déclares ta fonction avec ses paramètres et ce quelle doit retourner...

[VB6]


Option Explicit
'
'
Private Sub Form_Load()
Dim MaString As String
MaString = MaFonction("Bonjour", 14, 5)
Debug.Print MaString
End Sub
'
'
Private Function MaFonction(sChaine As String, iNum1 As Integer, iNum2 As Integer) As String
'ta fonction te renvoie la concaténation de la chaîne
'avec le 1er nombre*2 et le 2ème puissance 5
MaFonction = sChaine & CStr(iNum1 * 2) & CStr(iNum2 ^ 5)
End Function


<SMALL> Coloration syntaxique automatique [AFCK]</SMALL>


MaString va te retourner Bonjour283125

++
PCPT [AFCK]
0
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
1
PS : Attention à Enum : les 'réponses' doivent être déclarées par ordre alphabétique et numérotées dans un ordre croissant.

Bonne prog
++
0
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
Bouv -> salut, ordre alphabétique pour des raisons de lisibilité, mais croissant, pas du tout...

avec Reponse1 2 3 4 (donc 0 1 2 3), tu eux par exemple mettre

Public Enum ReponseType
Reponse1 = 0
Reponse2
Reponse3
Reponse4
End Enum

mais tu peux également mettre des valeurs qui ont un sens (pour toi) mais qui ne se suivent pas.
exemple, un Enum de constantes, bien plus pratique parfois...

Public Enum ReponseType
Reponse1 = &H0
Reponse2 = &H8
Reponse3 = 31
Reponse4 = Reponse1 Or Reponse3
End Enum

+
PCPT [AFCK]
0
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
Reponse4 = Reponse2 Or Reponse3
0
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
1
Ouai c'est vrai. En fait j'ai répondu un peu vite et j'ai pas trop voulu compliqué.

Par contre

Reponse4 = Reponse1 Or Reponse3

Je connaissais pas Je vais faire un test pour voir comment ça fonctionne.

Bonne prog
++
0
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
Reponse4 = Reponse 2 Or Reponse3



Reponse2 = &H8
Reponse3 = 31


reponse2 = 0000 1000
reponse3 = 0001 1111


0 Or 1 -> 1
1 Or 1 -> 1


Reponse4 = 0001 1111 -> 31 -> &H1F

++
PCPT [AFCK]
0
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
1
OK merci pour l'explication

Bonne prog
++
0
Messages postés
5
Date d'inscription
dimanche 19 janvier 2003
Statut
Membre
Dernière intervention
5 septembre 2007

Merci Bouv !

C'était exactement ce que je cherchais.
0