Retourner plusieur variables [Résolu]

Messages postés
58
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
14 janvier 2010
- - Dernière réponse : jrivet
Messages postés
7401
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
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
43
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Messages postés
58
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
14 janvier 2010
0
Merci
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
Messages postés
55
Date d'inscription
jeudi 28 juillet 2005
Statut
Membre
Dernière intervention
23 mars 2006
1
0
Merci
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+
Messages postés
58
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
14 janvier 2010
0
Merci
Salut,
J'ai réussi à retourner et à accéder a mes variables en créant un type perso.
Merci a Jrivet.
@+
Thomas
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
43
0
Merci
Re,

Bah de rien nous sommes là pour ça.

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée