Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Fonction VBA accessible par Excel

  • Initiateur de la discussion Initiateur de la discussion serge:)
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

serge:)

Guest
Bonjour,

Je vous retransmets ma question initiale avec quelques précisions mais c'est toujours la même question.

J'aimerais pouvoir invoquer dans une cellule d'Excel une fonction qui permet d'évaluer une formule (expression) qui implique des nombres avec virgule, des opérateurs (+-*/) et des parenthèses.

Cette fonction doit être développée en VBA car elle n'existe pas dans le monde Excel.

Par exemple, dans Excel, je pourrais invoquer la fameuse fonction comme suit :

=eval (A10) alors que A10 vaut par ex. la chaîne de caractères '1,23/4,56'

Ou encore :

=eval ('(3,1416/2)/5280')

Comment est-ce possible de faire ça simplement ?

En vous remerciant !
 
Merci Laurent pour la fonction. Elle m'a permis d'investiguer sur le net ...

Après quelques recherches, voici une version un peu plus sophistiquée :

======
Public Function EVAL(expression As Variant) As Variant

Dim expEvaluee As Variant
Application.Volatile

On Error GoTo fonctionErronnee

If Not IsEmpty(expression) Then
If TypeOf Application.Caller.Parent Is Worksheet Then
expEvaluee = Application.Caller.Parent.Evaluate(CStr(expression))
Else
expEvaluee = Application.Evaluate(CStr(expression))
End If

If IsError(expEvaluee) Then
EVAL = CVErr(xlErrValue)
Else
EVAL = expEvaluee
End If
End If
Exit Function

fonctionErronnee:
EVAL = CVErr(xlErrNA)
End Function
======

serge🙂
 
Bonjour,

Attention à la gestion du point décimal, sous peine d'obtenir une erreur de type '#VALEUR', si la valeur du séparateur décimal définie dans Windows est la virgule (,).
Dans ce cas, au niveau de l'onglet 'International' de la commande 'options...' du menu 'Outils' d'Excel, il vaut mieux décocher la case 'Utiliser les séparateurs système' et fixer la valeur du champ 'Séparateur de décimale' à un point (.).
De plus, la saisie rapide de listes de nombres décimaux en sera facilitée, sans obliger à chercher la virgule à chaque fois.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…