Thomeux
Messages postés58Date d'inscriptionmercredi 15 mars 2006StatutMembreDernière intervention14 janvier 2010
-
22 mars 2006 à 14:00
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDerniè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
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 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