Bonjour ...
J'utilise en ce moment Office XP et je suis en train de réaliser une petite application VBA qui peut me calculer le PGDC de 2 nombres.
Mon code est un peu long ( avec les commentaires ) mais je vous le met pour que vous puissiez l'analyser :
Le problème que j'ai c'est que peut importe les nombres que je rentres, j'ai toujours le résultat "0" qui s'affiche. Je sais que j'ai du faire une erreur mais je ne la trouve pas car je n'ai pas d'erreur de compilation.
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 Sub PGDC() 'Définition des variables Dim a As Long ' Premier nombre Dim b As Long ' Deuxième nombre Dim pg As Long ' Plus grand nombre Dim pp As Long ' Plus petit nombre Dim res As Long ' Résultat 'Message lorsque l'on ouvre le programme MsgBox ("Ce programme calcul le PGDC de 2 nombres") 'On met dans une variable ce que l'utilisateur va rentrer. a = InputBox("Entrer le 1er nombre") b = InputBox("Entrer le 2ème nombre") 'Si a est plus petit que b alors If (a < b) Then ' le plus petit nombre est a et le plus grand est b ( stockage dans les variables ) pp = a And pg = b 'sinon Else 'Si b est plus petit que a alors If (b < a) Then ' le plus petit nombre est b et le plus grand est a ( stockage dans les variables ) pp = b And pg = a 'sinon Else 'Par défaut le plus grand nombre est a et le plus petit est b pg = a And pp = b End If 'Fin de la boucle principale End If 'Si a est égal à b alors If a = b Then 'On affiche que le pgdc est a car c'est de toute façon le même nombre MsgBox ("Le pgdc du nombre " & a & "et du nombre" & b & " est : " & a) 'Tant que a est plus grand que b While (a > b) 'res sera égal au résultat du plus grand nombre - le plus petit. res = pg - pp 'Si le plus petit nombre est différent du plus grand alors If (pp <> pg) Then 'On affiche le résultat MsgBox res 'Sinon Else 'Si le contenu de res est plus petit que le plus petit nombre alors If res < pp Then 'Le plus grand nombre est égal au plus petit et le plus petit est égal au plus grand pg = pp And pp = res 'Sinon Else 'le plus petit nombre est égal au res et les plus grand nombre est égal au plus petit pp = res And pg = pp End If End If 'Din de la boucle WHILE Wend End If 'Affichage du PGDC des 2 nombres MsgBox "Le PGDC de " & a & " et de " & b & " est " & pp& 'Si le rsultat est = à 1 alors c'est que c'est des nombres premiers. If res = 1 Then MsgBox " Ces 2 nombres sont premiers " End If End Sub
Es ce que quelqu'un pourrait m'aider ???
Je vous remercie tous et à tout bientôt ...
Partager