Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

PGCD en VBA

256 views
Skip to first unread message

Olivier

unread,
Mar 10, 2010, 9:22:17 AM3/10/10
to
Bonjour,
j'utilise la fonction PGCD dans Excel 2003 pour simplifier 4 valeurs a,b,c,d
Le but est le calcul de p=pgcd(a,b,c,d)
puis a =a/p
b=b/p
c=c/p
d=d/p
J'y arrive avec Excel mais je bute lors du passage en VBA
A mon avis, cela provient de la fonction PGCD qui n'est pas reconnue en VBA.
Je peux cr�er PGCD(a, b) mais avec 4 nombres comment faire ?
Si quelqu'un peut m'aider...
Olivier

michdenis

unread,
Mar 10, 2010, 9:27:23 AM3/10/10
to
Bonjour,

En vba,

tu peux acc�der � cette fonction PGCD() en vba par

x = WorksheetFunction.Gcd(a,b,c,d)


"Olivier" <olivi...@club-internet.fr> a �crit dans le message de groupe de discussion :
hn89up$i9a$1...@speranza.aioe.org...

Olivier

unread,
Mar 10, 2010, 10:02:08 AM3/10/10
to
Merci pour la r�ponse rapide mais cela ne marche pas.
Cela me donne "Erreur d'ex�cution 438. Propri�t� ou m�thode non g�r� par cet
objet."
Voici mon code :
Sub ppp()
a = 28
b = 12
c = 16
d = 32
x = WorksheetFunction.Gcd(a, b, c, d)
MsgBox x
End Sub
Une id�e ?
Olivier

"michdenis" <mich...@hotmail.com> a �crit dans le message de news:
u55IQ3Fw...@TK2MSFTNGP05.phx.gbl...

michdenis

unread,
Mar 10, 2010, 10:13:08 AM3/10/10
to
Cette proc�dure ne g�n�re aucune erreur et
retourne 4 comme r�ponse.
'**********************************

Sub ppp()
a = 28
b = 12
c = 16
d = 32
x = WorksheetFunction.Gcd(a, b, c, d)
MsgBox x
End Sub
'**********************************


Olivier

unread,
Mar 10, 2010, 10:26:58 AM3/10/10
to
Merci, mais chez moi ca ne marche pas.
J'ai remarqu� que lorsque je tape gcd cela reste gcd et n'est pas transform�
en Gcd (avec la majuscule). Comme si, vba ne reconnaissait pas cette
fonction. Je suis sous Excel 2003 est-ce que quelqu'un sait d'o� peut
provenir mon erreur.
La fonction pgcd marche bien dans Excel..
Olivier

"michdenis" <mich...@hotmail.com> a �crit dans le message de news:

eoqe0QGw...@TK2MSFTNGP04.phx.gbl...

michdenis

unread,
Mar 10, 2010, 10:29:09 AM3/10/10
to
Ok, pour les versions ant�rieures � 2007,
la macro compl�mentaire "utilitaire d'analyse" doit �tre charg�e.

La proc�dure va comme suit :
'-------------------------------


Sub ppp()
a = 28
b = 12
c = 16
d = 32

x = Evaluate("PGcd(" & a & "," & b & "," & c & "," & d & ")")
MsgBox x
End Sub
'-------------------------------

Olivier

unread,
Mar 10, 2010, 10:37:59 AM3/10/10
to
Merci, ca marche !
Je pr�f�rais la syntaxe de l'autre mais bon.
Je crois que je ne saurais pas pourquoi elle ne marche pas.
Merci � toi !
Olivier

"michdenis" <mich...@hotmail.com> a �crit dans le message de news:

eppLxZGw...@TK2MSFTNGP02.phx.gbl...

michdenis

unread,
Mar 10, 2010, 10:47:03 AM3/10/10
to
| Je crois que je ne saurais pas pourquoi elle ne marche pas.

Les fonctions de la feuille de calcul sont accessibles en utilisant
l'objet "WorksheetFunction" sauf pour quelques unes dont PGCD()
Si tu veux savoir pourquoi, il faut t'adresser directement � Microsoft.

Elle est pr�sente avec Excel 2007.

Olivier

unread,
Mar 10, 2010, 11:24:21 AM3/10/10
to
Une reaison de plus de passer � v2007 :-)
Merci
Olivier

"michdenis" <mich...@hotmail.com> a �crit dans le message de news:

uD1gxjGw...@TK2MSFTNGP02.phx.gbl...

Daniel.C

unread,
Mar 10, 2010, 12:24:54 PM3/10/10
to
Bonjour.

Dans la fenᅵtre VBE, il faut cocher dans Outils, Rᅵfᅵrences
"ATPVBAEN.xls". La syntaxe est alors la suivante :

x = Gcd(a, b, c, d)

Cordialement.

Daniel

> Merci, mais chez moi ca ne marche pas.

> J'ai remarquᅵ que lorsque je tape gcd cela reste gcd et n'est pas transformᅵ

> en Gcd (avec la majuscule). Comme si, vba ne reconnaissait pas cette

> fonction. Je suis sous Excel 2003 est-ce que quelqu'un sait d'oᅵ peut

> provenir mon erreur.
> La fonction pgcd marche bien dans Excel..
> Olivier
>
>
>

> "michdenis" <mich...@hotmail.com> a ᅵcrit dans le message de news:
> eoqe0QGw...@TK2MSFTNGP04.phx.gbl...
>> Cette procᅵdure ne gᅵnᅵre aucune erreur et
>> retourne 4 comme rᅵponse.

michdenis

unread,
Mar 10, 2010, 12:54:06 PM3/10/10
to

| Une reaison de plus de passer � v2007

Peut-�tre! Mais comme Daniel le fait remarquer dans son message,
comme la fonction que tu d�sires fait partie des fonctions comprises
dans la macro compl�mentaire "Utilitaire d'analyse", si tu ajoutes
la r�f�rence : Project atpvbaen.xls,
Chemin du fichier :
C:\Program Files (x86)\Microsoft Office\OFFICE11\Biblioth�que\Analyse\ATPVBAEN.XLA

Tu auras acc�s directement � toutes les fonctions de la macro compl�mentaire.
Dans la fen�tre de l'�diteur de code, raccourci clavier F2, tu s�lectionnes
"atpvbaen.xls" dans la liste d�roulante o� il est inscrit "toutes les biblioth�ques"
du haut de la fen�tre, tu auras le nom de chacune des fonctions contenues
dans cette macro compl�mentaire.

Comme ce n'est pas des fonctions natives d'Excel, elles ne font pas parties
des fonctions que retournent l'objet "WorksheetFunction"

Voil� pour la pr�cision.

0 new messages