Type de declaration

blalaa Messages postés 167 Date d'inscription   Statut Membre Dernière intervention   -  
blalaa Messages postés 167 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je sius vraiment bloque si qlqun peut maider je le remercie
alors voila le probleme

je declare ma variable comme suivant

dim dp as currency

mais quand jeffectue le calcul mon dp nest pas pris en compte ????

je ne sais pas pour quoi
jai essayer avec tout les autres type(long, single, currency,.....) , ca marche tjrs pas

1 réponse

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonsoir, tu ne montres qu'une seule ligne de ton code: es-tu certain que l’erreur ne vient pas d'ailleurs?
1
blalaa Messages postés 167 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour

voila le programme tout
le probleme c que quand je donne des petites valeurs pour D et L et RO et vis
dp ne saffiche pas dans mon textbox


Private Sub CommandButton_valider_Click()

Dim q1 As Double, d1 As Double, vis As Double, v1 As Single, ro As Double, psi As Double, dp1 As Single

ro = TextBox_ro.Value
vis = TextBox_vis.Value
q1 = TextBox_debit.Value
d1 = TextBox_diametre.Value * 0.001
l1 = TextBox_longueur.Value * 0.001

If ComboBox_lisse_rugueux.Value = "lisse" Then
             
                 
                       v1 = (4 * q1) / (3.14 * (d1 ^ 2))
                       
                       TextBox_vitesse.Value = v1
                       re1 = v1 * d1 / vis
                              If re1 < 3300 Then
                              TextBox_regime.Value = "laminaire"
                              k1 = 64 / re1
                            
                              Else
                              TextBox_regime.Value = "turbulent"
                              Dim r1 As Currency
                              k1 = 0
                              r1 = 0
                              '--------------------------

                                '--------------------------
                              While r1 <= 1
                              k1 = k1 + 0.0001
                              r1 = (2 * ((Log(re1 * Sqr(k1))) / Log(10)) - 0.8) * Sqr(k1)

                              Wend
                            dp1 = k1 * l1 * 0.001 * ro * (v1 ^ 2) * 0.5 / d1
                              TextBox_perte_de_charge.Value = dp1
                              
                              '-----------------------------------remplir le tableau 180
                              'Range("c5") = ""
                              'Range("d5") = TextBox_matiere.Value
                             ' Range("e5") = TextBox_choix.Value
                              'Range("f5") = TextBox_rugosite.Value
                              'Range("g5") = d1 * 1000
                              'Range("h5") = l1 * 1000
                              'Range("i5") = q1
                              'Range("j5") = vis
                              'Range("k5") = ro
                              'Range("l5") = v1
                              'Range("m5") = dp1
                            
                              '---------------------------------------
                              End If
                              


Else


                       v1 = (4 * q1) / (3.14 * (d1 ^ 2))
                       Range("L5") = v1
                       TextBox_vitesse.Value = v1
                       re1 = v1 * d1 / vis
                              If re1 < 3300 Then
                              TextBox_regime.Value = "laminaire"
                              k1 = 64 / re1
                            
                              Else
                              TextBox_regime.Value = "turbulent"
                              
                              k1 = 0
                              r1 = 0
                              '--------------------------

                                '--------------------------
                              While r1 <= 1
                              k1 = k1 + 0.0001
                              psi = TextBox_rugosite.Value
                              
                              r1 = (-2 * (Log((psi / (3.7 * d1)) + (2.52 / (Sqr(k1) * re1)))) / (Log(10))) * Sqr(k1)

                              Wend
                            dp1 = k1 * l1 * 0.001 * ro * (v1 ^ 2) * 0.5 / d1
                              TextBox_perte_de_charge.Value = dp1
                              
                               '-----------------------------------remplir le tableau 180
                              'Range("c5") = ""
                              'Range("d5") = TextBox_matiere.Value
                              'Range("e5") = TextBox_choix.Value
                              'Range("f5") = TextBox_rugosite.Value
                              'Range("g5") = d1 * 1000
                              'Range("h5") = l1 * 1000
                              'Range("i5") = q1
                              'Range("j5") = vis
                              'Range("k5") = ro
                              'Range("L5") = v1
                              'Range("m5") = dp1
                            
                              '---------------------------------------
                              
                              End If
                   
End If

End Sub


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
0
blalaa Messages postés 167 Date d'inscription   Statut Membre Dernière intervention   > blalaa Messages postés 167 Date d'inscription   Statut Membre Dernière intervention  
 
sachant que les deifferentes variables sont stokes dans mon userform
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > blalaa Messages postés 167 Date d'inscription   Statut Membre Dernière intervention  
 
veux-tu dire que la boucle
While r1 <= 1
ne se termine jamais, et donc que
TextBox_perte_de_charge.Value = dp1
n'est jamais exécuté?
0
blalaa Messages postés 167 Date d'inscription   Statut Membre Dernière intervention  
 
non
je viens deffectuer un calcul mais je ne crois pas que c la qui reside le probleme
parceque si vous regarder bien le programme vous allez vous rendre compte que
parexemple pour (d=9mm) on est dans le regime laminaire ca veut dire quon est dans la premiere condition
(If re1 < 3300 Then
TextBox_regime.Value = "laminaire"
k1 = 64 / re1
)
et donc c pas la boucle
0
blalaa Messages postés 167 Date d'inscription   Statut Membre Dernière intervention  
 
ahhh je vien de me rendre compte dou vient lerreure
au fait c que linstruction :
dp1 = k1 * l1 * 0.001 * ro * (v1 ^ 2) * 0.5 / d1

je lai ecrite avant que je ferme la condition if
alors il prend pas en compte dp quand je suis dans laminaire

merci qd mm
0