Comparaison entre valeurs
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 -
blalaa Messages postés 167 Date d'inscription Statut Membre Dernière intervention -
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. |
A voir également:
- Comparaison entre valeurs
- Comparaison million milliard - Accueil - Technologies
- Logiciel comparaison photo gratuit - Télécharger - Photo & Graphisme
- Excel liste de valeurs - Guide
- Comparaison samsung a15 et a16 - Accueil - Téléphones
- Faites afficher avec un fond coloré les cellules qui contiennent une valeur comprise entre 250 et 350. ✓ - Forum Excel
4 réponses
Bonjour blalaa, bonjour le forum,
Un mélange de Else et de ElseIf abracadabrantesque... Essaie comme ça :
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
Re,
Quel est le message d'erreur ?
Quelle est la valeur de Cells(I, 9) quand ça plante ?
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
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...
- 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 :
Peut-être avec :
q1 = IIf(Cells(i, 9).Value=0, 0.0000778 / 3600000, Cells(i, 9) / 3600000)
merci pour ta reponse
je viens de l'essayer et ca marche mm pas
il detecte un probleme a :