PGCD en VBA

Le
Olivier
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
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #21355011
Bonjour,

En vba,

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

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




"Olivier" hn89up$i9a$
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
Olivier
Le #21355271
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"
Bonjour,

En vba,

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

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




"Olivier" de discussion :
hn89up$i9a$
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
Le #21355261
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
Le #21355351
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"
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
'**********************************




michdenis
Le #21355471
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
Le #21355461
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"
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
'-------------------------------



michdenis
Le #21355441
| 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
Le #21355871
Une reaison de plus de passer à v2007 :-)
Merci
Olivier

"michdenis"
| 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.





Daniel.C
Le #21356361
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"
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
'**********************************




michdenis
Le #21356651
| 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 OfficeOFFICE11BibliothèqueAnalyseATPVBAEN.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.
Publicité
Poster une réponse
Anonyme