Thomeux
Messages postés58Date d'inscriptionmercredi 15 mars 2006StatutMembreDernière intervention14 janvier 2010
-
26 avril 2006 à 11:45
Thomeux
Messages postés58Date d'inscriptionmercredi 15 mars 2006StatutMembreDernière intervention14 janvier 2010
-
26 avril 2006 à 15:57
Bonjour,
J'effectue un programme sous Excel afin d'effectué un calcul de cote.
Dans ce programme, j'ai desoin que le prigramme me propose une valeur, et qu'en fonction de cette valeur, je lui passe une valeur que je ne peux pas définir avant de lancer le programme.
J'ai donc créé une userform dans laquelle se trouve deux textbox, une pour afficher la valeur du programme, et l'autre pour saisir la valeur à passer au programme. Lorsque je demande à mon programme de me montrer la userform et de mettre la valeur calculée dans la textbox1, il affiche bien la userform, mais la textbox reste vide, et quelquesoit la valeur rentrée dans la textbox2, rien ne se passe.
Pouvez vous m'aidez s'il vous plaît.
Merci d'avance
Thomas
PS: je vous joint mon code
Dans module1:
'***********************************
'Définition nouveau type de Varaible
'Créer par MERRE Thomas le 27/03/06
'Nom du type: Mon Type
'Variable: Min, Max, Xmax, Xmin
'***********************************
Private Type MonType
Cp As Double
dpf As Double
End Type
'***********************************
'*Fin de définition du nouveau type*
'***********************************
Sub vis_sans_fin()
UserForm1.Hide
Dim c As MonType
c = Module2.CADOR(Range("B65"), Range("B66"), Range("B67"), Range("B68"), 0.5)
Range("C70") = c.Cp
Range("C71") = c.dpf
End Sub
Dans module2:
'***********************************
'Définition nouveau type de Varaible
'Créer par MERRE Thomas le 27/03/06
'Nom du type: Mon Type
'Variable: Min, Max, Xmax, Xmin
'***********************************
Private Type MonType
Cp As Double
dpf As Double
End Type
'***********************************
'*Fin de définition du nouveau type*
'***********************************
'**************************************
'*********Algorythme de CADOR**********
'**************************************
Function CADOR(z1 As Single, q As Double, mx As Double, alphazn As Double, Csx As Double) As MonType
'z1 'Nombre de filet vis
'q 'Quotient diamétral
'mx 'module axial
'alphazn 'angle de pression reel de l'outil
'Csx 'coefficient de répartition de d'épaisseur
'**********************
'***Données Calculées**
'**********************
Dim pz2 As Double
Dim gamma1 As Double
Dim r1 As Double
Dim h1 As Double
Dim rf1 As Double
Dim ra1 As Double
Dim Sx As Double
Dim a1 As Double
Dim a2 As Double
Dim a3 As Double
Dim A As Double
Dim B As Double
Dim c As Double
Dim D As Double
Dim u As Double
Dim a4 As Double
Dim xx As Double
Dim yx As Double
Dim beta As Double
Dim tgalphax As Double
Dim F As Double
Dim Fp As Double
Dim deltabeta As Double
Dim alphart As Double
Dim rb As Double
Dim gammab As Double
Dim alpharc As Double
Dim rp As Double
Dim pf As Double
Dim dp As Double
Dim F2 As Double
Dim dpf As Double
Dim deltarb As Double
Dim deltay As Double
a1 = pz2
A = r1 - (Sx / 2) * (Cos(gamma1) / Tan(alphazn))
a2 = (A * Sin(gamma1) * Tan(alphazn)) / (Sqr(1 + (Sin(gamma1) * Tan(alphazn)) * (Sin(gamma1) * Tan(alphazn))))
a3 = a2 / (A * Tan(gamma1))
If a2 > 0 Then
u = (r1 * r1 - a2 * a2) ^ 0.5
a4 = -(a1 * Atn(u / a3) + a3 * u) + 4 * Atn(1) * mx * (1 - Csx)
Else
MsgBox "Le calcul est impossible, vérifiez vos paramètre d'entrée", vbExclamation
GoTo SORTIR
End If
yx = r1
beta = 0
Do
u = Sqr(yx ^ 2 - a2 ^ 2)
xx = a1 * Atn(u / a2) + a3 * u + a4
tgalphax = (a1 * a2 / yx + a3 * yx) / u
A = yx * (yx + xx * tgalphax)
B = -pz2 * yx * tgalphax
c = pz2 ^ 2
D = -pz2 * xx
Do
F = A * Tan(beta) + B * Tan(beta) * beta + c * beta + D
Fp = (A + beta * B) * Tan(beta) ^ 2 + B * (Tan(beta + B)) + A + c
deltabeta = F / Fp
beta = beta - deltabeta
Loop While (Abs(deltabeta / beta) > 0.0000001)
asecher
Messages postés262Date d'inscriptionlundi 20 octobre 2003StatutMembreDernière intervention27 avril 20071 26 avril 2006 à 14:06
Bonjour,
Au niveau logique, ce serait bien de dire que le paramètre est dans le premier TextBox et le résultat dans le second.
Sans entrer dans le détail de la fonction (j'ai mal à la tête rien qu'à le lire), quand tu procède en pas à pas, as-tu un résultat ? (quitte à mettre un msgbox pour vérifier que tu as bien un résultat).
Thomeux
Messages postés58Date d'inscriptionmercredi 15 mars 2006StatutMembreDernière intervention14 janvier 2010 26 avril 2006 à 15:57
J'ai bien une valeur pour "dp", mais rien ne s'affiche dans la textbox1( textbox qui doit recevoir la valeur calculée par la programme), j'ai même essayé de faire afficher du texte dans la textbox, mais il ne veut rien affiché.