Comment Utiliser des fonctions Excels dans une macro VBA

gilles06

XLDnaute Nouveau
Bonjour,
Je cherche à savoir s'il est possible d'utiliser des fonctions Excel (comme INDEX , EQUIV ou MAX ...etc) dabs une macro VBA.
Est-ce possible ? et si oui comment faire ?

Merci d'avance pour votre aide
 

JNP

XLDnaute Barbatruc
Re : Comment Utiliser des fonctions Excels dans une macro VBA

Bonjour Gilles06, Besnard68 :),
Toutes les fonctions de feuilles sont accessibles dans VBA, mais elles sont en anglais (se référer au fichier VBALIST.xls se trouvant dans C:\Program Files\Microsoft Office\Office?? suivant la version d'Office, 3° onglet), et nécessitent une formulation particulière :
Code:
Application.WorksheetFunction.CountIf(Plage, 12)
par exemple pour un NB.SI(Plage,12).
Bon courage :cool:
 

Besnard68

XLDnaute Occasionnel
Re : Comment Utiliser des fonctions Excels dans une macro VBA

Bonjour JNP, re Gilles06, Forum,

C'est vrai que la formulaison est in english, mais je trouve que les explications (en français, oufff !!!) sont heureusement relativement bien libellées ; On y trouve assez bien son bonheur, et pour les extras, il y a très heureusement des mains solidaires tendues bénévolement sur des sites comme celui-ci.

C'est pourquoi j'adhère entièrement à ta citation, JNP "Chercher la solution aux problèmes des autres, c'est avancer dans ses propres problèmes... ".

Longue vie à Excel-dowloads
 

Lord Nelson

XLDnaute Occasionnel
Re : Comment Utiliser des fonctions Excels dans une macro VBA

Salut,

Voici par exemple une RECHERCHEV en VBA :

Range("B2") = WorksheetFunction.VLookup(Range("B1"), Range("A8:B27"), 2, 0)

ou bien un INDEX/EQUIV :

Range("B5") = WorksheetFunction.Index(Range("A8:A27"), WorksheetFunction.Match(Range("B4"), Range("B8:B27"), 0))

où l'on doit combiner l'utilisation de 2 fonctions, d'abord Index puis EQUIV (Match en anglais).

Note que tu peux lire la traduction anglaise de ces fonctions en t'appuyant sur la propriété "Formula" de l'objet Range au lieu de "FormulaLocal".

A+
Horatio
 

gilles06

XLDnaute Nouveau
Re : Comment Utiliser des fonctions Excels dans une macro VBA

Salut à vous tous et grand merci,

J'ai à peu pres compris comment on fonctionne en VBA. 'ai neamoins une question tj en VBA concernant l'utilisation de plusieurs fonctions excel mais avec des noms de feuilles differentes.
ex: xx = WorksheetFunction.EQUIV(Range("Today"), Worksheets("detail").Range("B1:B150"), 1)
Cette fonction ne marche pas, peut-etre la syntax, je ne sais pas. Est-ce la bonne facon de l'ecrire ?

L'anglais ne me pose pas de probleme, et si il y a un document resumant l'utilisation des fonctions sous VBA et comment les utiliser ca me serait bien utile.

Merci à vous tous.

Gilles06
 

gilles06

XLDnaute Nouveau
Re : Comment Utiliser des fonctions Excels dans une macro VBA

Salut

Désolé je voulais ecrire dans mon example:

xx = WorksheetFunction.EQUIV("Today", Worksheets("detail").Range("B1:B150"), 1)

En fait je recherche le terme "Today" dans la feuille "Detail" ayant comme range(B1:B150) en utilisant la fonction EQUIV.

Mais meme ecrit comme ca, ca ne fonctionne pas, pourquoi ?

Merci de votre aide
 

Spitnolan08

XLDnaute Barbatruc
Re : Comment Utiliser des fonctions Excels dans une macro VBA

Re,
Mais y a t-il une correspondance des fonctions Excel et celles supporteés par VBA (à fonction identique) ?
Il y a plus que correspondance puisque ce sont les mêmes fonctions...mais leur nom est en anglais. Seule différence : certaines fonctions n'ont pas de transcription VBA

Cordialement
 

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 812
dernier inscrit
abdouami