Fonction

Résolu
Signaler
Messages postés
37
Date d'inscription
vendredi 9 juin 2006
Statut
Membre
Dernière intervention
29 avril 2011
-
Messages postés
37
Date d'inscription
vendredi 9 juin 2006
Statut
Membre
Dernière intervention
29 avril 2011
-
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

Messages postés
37
Date d'inscription
vendredi 9 juin 2006
Statut
Membre
Dernière intervention
29 avril 2011

Merçi a tous!
ça me servira beaucoup.

Gnain!
Messages postés
20
Date d'inscription
dimanche 4 janvier 2004
Statut
Membre
Dernière intervention
28 juin 2011

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
Messages postés
20
Date d'inscription
dimanche 4 janvier 2004
Statut
Membre
Dernière intervention
28 juin 2011

Tu peut aussi indiquer d'autre variable dans ton call

a 10 : b 20 : c = 30
Call test(a, b, c)
Messages postés
267
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
26 novembre 2013
2
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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
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
Messages postés
267
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
26 novembre 2013
2
@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
Messages postés
37
Date d'inscription
vendredi 9 juin 2006
Statut
Membre
Dernière intervention
29 avril 2011

Gnain!