Bonjour à tous,
Je suis sur un projet informatique et je dois convertir un programme en Turbo Pascal en un programme en VBA. Le problème c'est que je ne connais rien en Pascal et j'ai un problème avec une boucle repeat. J'ai regardé comment fonctionne la boucle et j'ai essayé de l'adapter en VBA mais les résultats ne sont pas concordants.
Voici le code Pascal :
Voici le code en vba :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 PM:=(DEN*VSR); PPS:=(PV*1000+PM); LP:=40; REPEAT LP:=LP+20; S1:=((((OS*1E+3)+30)*((OS*1E+3)+30)*PI)/4); S2:=(((OS*1E+3)-(2*(LP-15)))*((OS*1E+3)-(2*(LP-15)))*PI/4); SP:=(S1-S2); PM1:=PM*10; PV1:=PV*1000*10; CNS:=(((1.35*PV1+1.5*PM1)/SP)+((TE/(2*1.75))/SP)); UNTIL CNS<3.5;(*MPA*)
En faisant des tests avec les 2 programmes, les résultats sont différents. Si quelqu'un connait un meileur équivalent pour la boucle until en VBA ou voit l'erreur je suis preneur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 PM = DEN *VSR PPS = PV * 1000 + PM 'codage du repeat until' LP = (40) S1=((((OS*1E+3)+30)*((OS*1E+3)+30)*PI)/4); S2=(((OS*1E+3)-(2*(LP-15)))*((OS*1E+3)-(2*(LP-15)))*PI/4); SP=(S1-S2); PM1=PM*10; PV1=PV*1000*10; CNS=(((1.35*PV1+1.5*PM1)/SP)+((TE/(2*1.75))/SP)); Do LP = LP + 20 S1=((((OS*1E+3)+30)*((OS*1E+3)+30)*PI)/4); S2=(((OS*1E+3)-(2*(LP-15)))*((OS*1E+3)-(2*(LP-15)))*PI/4); SP=(S1-S2); PM1=PM*10; PV1=PV*1000*10; CNS=(((1.35*PV1+1.5*PM1)/SP)+((TE/(2*1.75))/SP)); Loop While CNS < 3.5
Merci d'avance
Partager