Comparaison entre valeurs
blalaa
Messages postés
171
Statut
Membre
-
blalaa Messages postés 171 Statut Membre -
blalaa Messages postés 171 Statut Membre -
Bonjour,
j'ai crée une application de calcul, son principe est simple , voici son programme
Private Sub CommandButton_valider_Click()
'calcul de perte de charge dues aux changements de sections
par exemple on dans cells(i,7) = 8 et cells(i+1,7)= 9 , lapplication calcul tres bien
mais des que cells(i,7) = 8 ET cells(i+1,7) prend la valeur =10 ou superieure l'application ne calcul pas correctement
diapre le programme puisque cells(i,7) = 8 ET cells(i+1,7)=10
alors cells(i,7) < cells(i+1,7)
donc elle doit executer le premier cas
je le rappele celle fait juste pour cells(i+1,7) = ou > 10
merci de me repondre
j'ai crée une application de calcul, son principe est simple , voici son programme
Private Sub CommandButton_valider_Click()
'calcul de perte de charge dues aux changements de sections
For i = 7 To 55
If Cells(i + 1, 3) = "" Then
Cells(i, 16) = ""
ElseIf Cells(i, 7) = "" Then
Cells(i, 16) = ""
ElseIf Cells(i + 1, 7) = "" Then
Cells(i, 16) = ""
Else
If Cells(i, 7) = Cells(i + 1, 7) Then
Cells(i, 16) = 0
Else
If Cells(i, 7) < Cells(i + 1, 7) Then
ro = Cells(i, 11)
q1 = Cells(i, 9) / 3600000
v1 = (4 * q1) / (3.14 * ((Cells(i, 7) * 0.001) ^ 2))
[/download/telecharger-34078674-k1 k1] = (1 - ((Cells(i, 7) / Cells(i + 1, 7)) ^ 2)) ^ 2
Else
ro = Cells(i + 1, 11)
q1 = Cells(i + 1, 9) / 3600000
v1 = (4 * q1) / (3.14 * ((Cells(i + 1, 7) * 0.001) ^ 2))
k1 = 0.5 * (1 - ((Cells(i + 1, 7) / Cells(i, 7)) ^ 2))
End If
Cells(i, 16) = k1 * ro * (v1 ^ 2) * 0.5 * 0.001
End If
P_line_sing_total = Range("P7") + Range("P8") + Range("P9") + Range("P10") + Range("P11") + Range("P12") + Range("P13") + Range("P14") + Range("P15") + Range("P16") + Range("P17") + Range("P18") + Range("P19") + Range("P20") + Range("P21") + Range("P22") + Range("P23") + Range("P24") + Range("P25") + Range("P26") + Range("P27") + Range("P28") + Range("P29") + Range("P30") + Range("P31") + Range("P32") + Range("P33") + Range("P34") + Range("P35") + Range("P36") + Range("P37") + Range("P38") + Range("P39") + Range("P40") + Range("P41") + Range("P42") + Range("P43") + Range("P44") + Range("P45") + Range("P46") + Range("P47") + Range("P48") + Range("P49") + Range("P50") + Range("P51")
P_elar_retr_totale = Range("o7") + Range("o8") + Range("o9") + Range("o10") + Range("o11") + Range("o12") + Range("o13") + Range("o14") + Range("o15") + Range("o16") + Range("o17") + Range("o18") + Range("o19") + Range("o20") + Range("o21") + Range("o22") + Range("o23") + Range("o24") + Range("o25") + Range("o26") + Range("o27") + Range("o28") + Range("o29") + Range("o30") + Range("o31") + Range("o32") + Range("o33") + Range("o34") + Range("o35") + Range("o36") + Range("o37") + Range("o38") + Range("o39") + Range("o40") + Range("o41") + Range("o42") + Range("o43") + Range("o44") + Range("o45") + Range("o46") + Range("o47") + Range("o48") + Range("o49") + Range("o50") + Range("o51")
End If
If Cells(i, 3) = "reservoir" Then
ro = Cells(i + 1, 11)
q1 = Cells(i + 1, 9) / 3600000
v1 = (4 * q1) / (3.14 * ((Cells(i + 1, 7) * 0.001) ^ 2))
k1 = 0.5
Cells(i, 16) = k1 * ro * (v1 ^ 2) * 0.5 * 0.001
End If
P_line_sing_total = Range("P7") + Range("P8") + Range("P9") + Range("P10") + Range("P11") + Range("P12") + Range("P13") + Range("P14") + Range("P15") + Range("P16") + Range("P17") + Range("P18") + Range("P19") + Range("P20") + Range("P21") + Range("P22") + Range("P23") + Range("P24") + Range("P25") + Range("P26") + Range("P27") + Range("P28") + Range("P29") + Range("P30") + Range("P31") + Range("P32") + Range("P33") + Range("P34") + Range("P35") + Range("P36") + Range("P37") + Range("P38") + Range("P39") + Range("P40") + Range("P41") + Range("P42") + Range("P43") + Range("P44") + Range("P45") + Range("P46") + Range("P47") + Range("P48") + Range("P49") + Range("P50") + Range("P51")
P_elar_retr_totale = Range("o7") + Range("o8") + Range("o9") + Range("o10") + Range("o11") + Range("o12") + Range("o13") + Range("o14") + Range("o15") + Range("o16") + Range("o17") + Range("o18") + Range("o19") + Range("o20") + Range("o21") + Range("o22") + Range("o23") + Range("o24") + Range("o25") + Range("o26") + Range("o27") + Range("o28") + Range("o29") + Range("o30") + Range("o31") + Range("o32") + Range("o33") + Range("o34") + Range("o35") + Range("o36") + Range("o37") + Range("o38") + Range("o39") + Range("o40") + Range("o41") + Range("o42") + Range("o43") + Range("o44") + Range("o45") + Range("o46") + Range("o47") + Range("o48") + Range("o49") + Range("o50") + Range("o51")
Range("u2") = P_line_sing_total + P_elar_retr_totale
Next
End Sub
c calcul tre bien mais le probleme c dans ce code :
Else
If Cells(i, 7) = Cells(i + 1, 7) Then
Cells(i, 16) = 0
Else
If Cells(i, 7) < Cells(i + 1, 7) Then
ro = Cells(i, 11)
q1 = Cells(i, 9) / 3600000
v1 = (4 * q1) / (3.14 * ((Cells(i, 7) * 0.001) ^ 2))
k1 = (1 - ((Cells(i, 7) / Cells(i + 1, 7)) ^ 2)) ^ 2
Else
ro = Cells(i + 1, 11)
q1 = Cells(i + 1, 9) / 3600000
v1 = (4 * q1) / (3.14 * ((Cells(i + 1, 7) * 0.001) ^ 2))
k1 = 0.5 * (1 - ((Cells(i + 1, 7) / Cells(i, 7)) ^ 2))
End If
Cells(i, 16) = k1 * ro * (v1 ^ 2) * 0.5 * 0.001
End If
par exemple on dans cells(i,7) = 8 et cells(i+1,7)= 9 , lapplication calcul tres bien
mais des que cells(i,7) = 8 ET cells(i+1,7) prend la valeur =10 ou superieure l'application ne calcul pas correctement
diapre le programme puisque cells(i,7) = 8 ET cells(i+1,7)=10
alors cells(i,7) < cells(i+1,7)
donc elle doit executer le premier cas
If Cells(i, 7) < Cells(i + 1, 7) Then
ro = Cells(i, 11)
q1 = Cells(i, 9) / 3600000
v1 = (4 * q1) / (3.14 * ((Cells(i, 7) * 0.001) ^ 2))
k1 = (1 - ((Cells(i, 7) / Cells(i + 1, 7)) ^ 2)) ^ 2
sauf que dans ce cas elle execute le 2 eme cas
Else
ro = Cells(i + 1, 11)
q1 = Cells(i + 1, 9) / 3600000
v1 = (4 * q1) / (3.14 * ((Cells(i + 1, 7) * 0.001) ^ 2))
k1 = 0.5 * (1 - ((Cells(i + 1, 7) / Cells(i, 7)) ^ 2))
End If
Cells(i, 16) = k1 * ro * (v1 ^ 2) * 0.5 * 0.001
je le rappele celle fait juste pour cells(i+1,7) = ou > 10
merci de me repondre
| EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
4 réponses
-
Bonjour blalaa, bonjour le forum,
Un mélange de Else et de ElseIf abracadabrantesque... Essaie comme ça :Private Sub CommandButton_valider_Click() 'calcul de perte de charge dues aux changements de sections For i = 7 To 55 If Cells(i + 1, 3) = "" Then Cells(i, 16) = "" If Cells(i, 7) = "" Then Cells(i, 16) = "" If Cells(i + 1, 7) = "" Then Cells(i, 16) = "" If Cells(i, 7) = Cells(i + 1, 7) Then Cells(i, 16) = 0 If Cells(i, 7) < Cells(i + 1, 7) Then ro = Cells(i, 11) q1 = Cells(i, 9) / 3600000 v1 = (4 * q1) / (3.14 * ((Cells(i, 7) * 0.001) ^ 2)) k1 = (1 - ((Cells(i, 7) / Cells(i + 1, 7)) ^ 2)) ^ 2 Else ro = Cells(i + 1, 11) q1 = Cells(i + 1, 9) / 3600000 v1 = (4 * q1) / (3.14 * ((Cells(i + 1, 7) * 0.001) ^ 2)) k1 = 0.5 * (1 - ((Cells(i + 1, 7) / Cells(i, 7)) ^ 2)) End If Cells(i, 16) = k1 * ro * (v1 ^ 2) * 0.5 * 0.001 P_line_sing_total = Range("P7") + Range("P8") + Range("P9") + Range("P10") + Range("P11") + Range("P12") + Range("P13") + Range("P14") + Range("P15") + Range("P16") + Range("P17") + Range("P18") + Range("P19") + Range("P20") + Range("P21") + Range("P22") + Range("P23") + Range("P24") + Range("P25") + Range("P26") + Range("P27") + Range("P28") + Range("P29") + Range("P30") + Range("P31") + Range("P32") + Range("P33") + Range("P34") + Range("P35") + Range("P36") + Range("P37") + Range("P38") + Range("P39") + Range("P40") + Range("P41") + Range("P42") + Range("P43") + Range("P44") + Range("P45") + Range("P46") + Range("P47") + Range("P48") + Range("P49") + Range("P50") + Range("P51") P_elar_retr_totale = Range("o7") + Range("o8") + Range("o9") + Range("o10") + Range("o11") + Range("o12") + Range("o13") + Range("o14") + Range("o15") + Range("o16") + Range("o17") + Range("o18") + Range("o19") + Range("o20") + Range("o21") + Range("o22") + Range("o23") + Range("o24") + Range("o25") + Range("o26") + Range("o27") + Range("o28") + Range("o29") + Range("o30") + Range("o31") + Range("o32") + Range("o33") + Range("o34") + Range("o35") + Range("o36") + Range("o37") + Range("o38") + Range("o39") + Range("o40") + Range("o41") + Range("o42") + Range("o43") + Range("o44") + Range("o45") + Range("o46") + Range("o47") + Range("o48") + Range("o49") + Range("o50") + Range("o51") If Cells(i, 3) = "reservoir" Then ro = Cells(i + 1, 11) q1 = Cells(i + 1, 9) / 3600000 v1 = (4 * q1) / (3.14 * ((Cells(i + 1, 7) * 0.001) ^ 2)) k1 = 0.5 Cells(i, 16) = k1 * ro * (v1 ^ 2) * 0.5 * 0.001 End If P_line_sing_total = Range("P7") + Range("P8") + Range("P9") + Range("P10") + Range("P11") + Range("P12") + Range("P13") + Range("P14") + Range("P15") + Range("P16") + Range("P17") + Range("P18") + Range("P19") + Range("P20") + Range("P21") + Range("P22") + Range("P23") + Range("P24") + Range("P25") + Range("P26") + Range("P27") + Range("P28") + Range("P29") + Range("P30") + Range("P31") + Range("P32") + Range("P33") + Range("P34") + Range("P35") + Range("P36") + Range("P37") + Range("P38") + Range("P39") + Range("P40") + Range("P41") + Range("P42") + Range("P43") + Range("P44") + Range("P45") + Range("P46") + Range("P47") + Range("P48") + Range("P49") + Range("P50") + Range("P51") P_elar_retr_totale = Range("o7") + Range("o8") + Range("o9") + Range("o10") + Range("o11") + Range("o12") + Range("o13") + Range("o14") + Range("o15") + Range("o16") + Range("o17") + Range("o18") + Range("o19") + Range("o20") + Range("o21") + Range("o22") + Range("o23") + Range("o24") + Range("o25") + Range("o26") + Range("o27") + Range("o28") + Range("o29") + Range("o30") + Range("o31") + Range("o32") + Range("o33") + Range("o34") + Range("o35") + Range("o36") + Range("o37") + Range("o38") + Range("o39") + Range("o40") + Range("o41") + Range("o42") + Range("o43") + Range("o44") + Range("o45") + Range("o46") + Range("o47") + Range("o48") + Range("o49") + Range("o50") + Range("o51") Range("u2") = P_line_sing_total + P_elar_retr_totale Next End Sub
-
bonjour
merci pour ta reponse
je viens de l'essayer et ca marche mm pas
il detecte un probleme a :If Cells(i, 7) < Cells(i + 1, 7) Then ro = Cells(i, 11) q1 = Cells(i, 9) / 3600000 ???????????????????????????????????? ici v1 = (4 * q1) / (3.14 * ((Cells(i, 7) * 0.001) ^ 2)) k1 = (1 - ((Cells(i, 7) / Cells(i + 1, 7)) ^ 2)) ^ 2
-
-
Re,
Quel est le message d'erreur ?
Quelle est la valeur de Cells(I, 9) quand ça plante ?
-
au fait ca simule pas
voici lerreur qui saffiche
erreur d’exécution '13'
incompatibilité du type
pour la valeur cells(i,9) = 0,0000778
sachant que la cells(i,9) est vide
mais jai fait un programme pour ca
If Cells(i, 3) = "reservoir" Then
ro = Cells(i + 1, 11)
q1 = Cells(i + 1, 9) / 3600000
v1 = (4 * q1) / (3.14 * ((Cells(i + 1, 7) * 0.001) ^ 2))
k1 = 0.5
Cells(i, 16) = k1 * ro * (v1 ^ 2) * 0.5 * 0.001
End If
je crois pour changer ce que tu veux toi il faut tenir compte de ca aussi -
-
-
Je ne comprends pas. Quand ça plante :
- Cells(I, 9) = 0,0000778 ?
- Cells(I, 9) est vide ?
Difficile de t'aider davantage sans fichier. Regarde du coté de : https://www.cjoint.com ou d'un quelconque autre hébergeur de fichier...
-
Re,
Peut-être avec :q1 = IIf(Cells(i, 9).Value=0, 0.0000778 / 3600000, Cells(i, 9) / 3600000)