Fonction

Résolu
Gnain Messages postés 37 Date d'inscription vendredi 9 juin 2006 Statut Membre Dernière intervention 29 avril 2011 - 1 févr. 2010 à 03:38
Gnain Messages postés 37 Date d'inscription vendredi 9 juin 2006 Statut Membre Dernière intervention 29 avril 2011 - 1 févr. 2010 à 12:57
Bonjours, Je me suis mis il y a 3 mois à vb6
ayant lus comment faire un fonction, j'avais la quasi certitude d'avoir bien compris qu'une fonction renvoyait une valeur.

Exemple: appel de la fonction
Private Sub Command1_Click()
Call test(x 1, y 2, z = 3)
End Sub

Fonction:
Function test(x, y, z As Variant)
Form1.Text1 = x + y + z
End Function

Je pensais obtenir 6 mais j'obtien 0...Pourquoi?

Merçi d'avance


Gnain!

7 réponses

Gnain Messages postés 37 Date d'inscription vendredi 9 juin 2006 Statut Membre Dernière intervention 29 avril 2011
1 févr. 2010 à 12:56
Merçi a tous!
ça me servira beaucoup.

Gnain!
3
davidmaillard Messages postés 20 Date d'inscription dimanche 4 janvier 2004 Statut Membre Dernière intervention 28 juin 2011
1 févr. 2010 à 05:16
Salut
Dans ton appelle de la function, il ne faut pas assignée une valeur a tes variable, mais mettre la valeur seule.

Private Sub Command1_Click()
Call test(1,2,3)
End Sub
0
davidmaillard Messages postés 20 Date d'inscription dimanche 4 janvier 2004 Statut Membre Dernière intervention 28 juin 2011
1 févr. 2010 à 05:19
Tu peut aussi indiquer d'autre variable dans ton call

a 10 : b 20 : c = 30
Call test(a, b, c)
0
hellangel777 Messages postés 267 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 26 novembre 2013 1
1 févr. 2010 à 10:22
Bonjour,

Le type Variant n'est pas forcement judicieux. Evite le le plus possible. Surtout si tu sais quel type doit être utilisé.

Exemple: appel de la fonction
 
Private Sub Command1_Click() 
Call test(1,2,3) 
End Sub 

Function test(x, y, z As integer) 
Form1.Text1 = x + y + z 
End Function 




HellAngel777
Les machines ne font pas d'erreurs
Heureusement nous sommes humains
0

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

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 228
1 févr. 2010 à 10:30
Bonjour,

Je crois que vous passez tous à côté de la vocation même d'une fonction (retourner une valeur) !

Voici, à main levée, ce qui devrait être fait (exemple) :

Private Sub Command1_Click()
  dim a as integer, b as integer, c as integer
  a = 1 : b= 2 : c = 3
  Form1.Text1 = test(a,b,c)
End Sub


private Function test(x as integer, y as i nteger, z as integer ) as integer
  test = x + y + z
End Function



____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
hellangel777 Messages postés 267 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 26 novembre 2013 1
1 févr. 2010 à 10:48
@ucfoutu
Olala... En effet. Je crois que le lundi matin est à banir de la semaine...
Merci de nous remettre sur le droit chemin et personnellement je m'excuse d'être passée autant à coté...
Bon courage à tous

HellAngel777
Les machines ne font pas d'erreurs
Heureusement nous sommes humains
0
Gnain Messages postés 37 Date d'inscription vendredi 9 juin 2006 Statut Membre Dernière intervention 29 avril 2011
1 févr. 2010 à 12:57
Gnain!
0