Retourner plusieur variables

Résolu
Thomeux Messages postés 58 Date d'inscription mercredi 15 mars 2006 Statut Membre Dernière intervention 14 janvier 2010 - 22 mars 2006 à 14:00
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 22 mars 2006 à 14:48
Bonjours,
je débute plus ou moins en vb et j'ai besoin d'aide. j'ai créé une fonction qui a pour but de calculer deux valeur "Mdmax" et "Mdmin". Pour le moment les deux valeurs sont ecrite dans un fichier excel. J'aimerai que ma fonction puisse retourner ces deux valeur après les avoir calculées.Pour le moment tous est fait dans la fonction mais j'envisage de lui passer en paramettre toutes les valeur nécessaire au calcul.
Comment faire pour qu'elle me renvoi les deux valeurs?
D'avance merci pour votre aide

Thomas

Voici mon code:
Function cotepige() Dim z As Integer
Dim Dpr As Double
Dim Dpna As Double
Dim Xmax As Double
Dim Xmin As Double
Dim ao As Double
Dim invao As Double
Dim invacmax As Double
Dim invacmin As Double
Dim acmax As Double
Dim acmin As Double
Dim Mdmax As Double
Dim Mdmin As Double
Dim Cosinusacmax As Double
Dim Cosinusacmin As Double
ao = Range("D8")
m = Range("C9")
z = Range("J43")
Dpr = Range("C25")
Dpna = Range("J44")
Mdmax = Range("J41")
Mdmin = Range("J42")
If PAIR(z) Then
Cosinusacmax = (m * z * Cos(ao)) / (Mdmax - Dpna)
Cosinusacmin = (m * z * Cos(ao)) / (Mdmin - Dpna)
Else
Cosinusacmax = (m * z * Cos(ao) * Cos(3.141592654 / (2 * z))) / (Mdmax - Dpna)
Cosinusacmin = (m * z * Cos(ao) * Cos(3.141592654 / (2 * z))) / (Mdmin - Dpna)
End If
acmax = Acos(Cosinusacmax)
acmin = Acos(Cosinusacmin)
invacmax = Tan(acmax) - acmax
invacmin = Tan(acmin) - acmin
invao = Tan(ao) - ao
Xmax = (z * ((invacmax - invao) - Dpna / (m * z * Cos(ao))) + 3.141592654 / 2) / (2 * Tan(ao))
Xmin = (z * ((invacmin - invao) - Dpna / (m * z * Cos(ao))) + 3.141592654 / 2) / (2 * Tan(ao))
Range("C33") = Xmax
Range("C37") = Xmin
invacmax = invao + Dpr / (m * z * Cos(ao)) - ((3.141592654 / 2) - 2 * Xmax * Tan(ao)) / z
invacmin = invao + Dpr / (m * z * Cos(ao)) - ((3.141592654 / 2) - 2 * Xmin * Tan(ao)) / z

If PAIR(z) Then
Mdmax = m * z * Cos(ao) / Cos(angle(invacmax)) + Dpr
Mdmin = m * z * Cos(ao) / Cos(angle(invacmin)) + Dpr
Else
Mdmax = m * z * Cos(ao) * Cos(3.141592654 / (2 * z)) / Cos(angle(invacmax)) + Dpr
Mdmin = m * z * Cos(ao) * Cos(3.141592654 / (2 * z)) / Cos(angle(invacmin)) + Dpr
End If
Range("E36") = Mdmax
Range("E37") = Mdmin

End Function

5 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
22 mars 2006 à 14:20
SAlut,

Tu peux faire de deux manieres

Soit ta fonction de retournera un type Personnel:

Private Type MonType
Min as integer
Max as integer
End Type

Private funciton TaFonction() as MonType
tafonction.Min = 0
TaFonction.Max = 100
end function
Ou alors tu passe en parametres a ta fonction les valeurs que tu veux qu elle te retourne comme min et max

Private Function TaFonction(ByRef MonMin as integer, ByRef MonMax as integer)
MonMin = 0
MonMax = 100
end function

Voila en esperant avoir pu t aider un peu
@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
3
Thomeux Messages postés 58 Date d'inscription mercredi 15 mars 2006 Statut Membre Dernière intervention 14 janvier 2010
22 mars 2006 à 14:28
Julien,
Avec tes deux méthodes, comment faire pour avoir acces aux valeur min et max lors de l'appel de la fonction.
Merci
@+
Thomas
0
PhilocheMan Messages postés 55 Date d'inscription jeudi 28 juillet 2005 Statut Membre Dernière intervention 23 mars 2006 1
22 mars 2006 à 14:35
Salut,
Je crois que JRivet t'a donné la bonne soluce

Private Type Resultat
Min as Integer
Max as Integer
End Type

Function CotePige() as Resultat
CotePige.Min = Range("E36")
CotePige.Max = Range("E37")

End Function

Après, tu récupères où tu veux CotePige.Min et CotePige.Max

A+
0
Thomeux Messages postés 58 Date d'inscription mercredi 15 mars 2006 Statut Membre Dernière intervention 14 janvier 2010
22 mars 2006 à 14:47
Salut,
J'ai réussi à retourner et à accéder a mes variables en créant un type perso.
Merci a Jrivet.
@+
Thomas
0

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

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
22 mars 2006 à 14:48
Re,

Bah de rien nous sommes là pour ça.

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
0
Rejoignez-nous