Function calcul(chaine)

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 !

Regueiro

XLDnaute Impliqué
Bonjour à Tous.
Avec cette merveilleuse function de Boisgontier.
Je l'utilise tous les jours pour des Métrés.
Voir en PJ le fichier.

J'aimerais pouvoir utiliser des ( ).
Comment modifier le code pour que la fonction prennent en compte les ( )

HTML:
Function calcul(chaine)
  Set obj = CreateObject("vbscript.regexp")
  obj.Global = True
  obj.Pattern = "[a-zA-Z\s\$]*"
  'obj.Pattern = "[^\d.,*/+-]*"   'David84
  calcul = Evaluate(obj.Replace(Replace(chaine, ",", "."), ""))
End Function

Vous comprendrez vite ma demande en ouvrant le fichier.
Merci de votre aide.
A+
 

Pièces jointes

Re : Function calcul(chaine)

Bonjour Regueiro

En espérant que JB me pardonne !!!

Un essai

Edit : Salut Rachid
Arf !!! :Je n'avais pas vérifié la super formule de JB (Je prie ton pardon pour ce manque de confiance !!!)
 

Pièces jointes

Dernière édition:
Re : Function calcul(chaine)

Bonjour Rachid, cela fait plaisir de vous rencontrez.
Le problème est résolu.

J'avais en fait la function 1 x dans le module de cette feuille :

Code:
Function calcul(chaine)
  Set obj = CreateObject("vbscript.regexp")
  obj.Global = True
  obj.Pattern = "[a-zA-Z\s\$]*"
  'obj.Pattern = "[^\d.,*/+-]*"   'David84
  calcul = Evaluate(obj.Replace(Replace(chaine, ",", "."), ""))
End Function

Et également une fois dans mon fichier MacroPerso.Xlam

Je l'ais supprimer sur le fichier MacroPerso.Xlam
et tout fonctionne.

MErci
 
Re : Function calcul(chaine)

Bonsour®
Bonjour à Tous.
Avec cette merveilleuse function de Boisgontier.
Je l'utilise tous les jours pour des Métrés.
Voir en PJ le fichier.

J'aimerais pouvoir utiliser des ( ).
Comment modifier le code pour que la fonction prennent en compte les ( )

HTML:
Function calcul(chaine)
  Set obj = CreateObject("vbscript.regexp")
  obj.Global = True
  obj.Pattern = "[a-zA-Z\s\$]*"
  'obj.Pattern = "[^\d.,*/+-]*"   'David84
  calcul = Evaluate(obj.Replace(Replace(chaine, ",", "."), ""))
End Function

Vous comprendrez vite ma demande en ouvrant le fichier.
Merci de votre aide.
A+

Comme le dit R@chid, prise individuellement la fonction ci-dessus fonctionne correctement.
Cependant dans le fichier exemple il est fait appel à un .Xlam non fourni ici.
En cas de partage de fichier il faudra :
- fournir et activer cette fonction complémentaire chez chaque utilisateur.
- activer la librairie Microsoft Regular expression.(voir capture)

😎
Sauf à inclure la fonction personnalisée ci-dessous dans ce classeur,
- ne nécessite pas de déclaration particulière.
- prise en compte des notations scientifiques
- + souplesse (voir capture2)
VB:
Function calculGD(target) As Double
Dim i As Integer, chaine As String
chaine = ""
For i = 1 To Len(target)
chaine = chaine & IIf(InStr("(0123456789E)+-*/,.^", Mid(target, i, 1)) <> 0, Mid(target, i, 1), "")
Next
calculGD = Evaluate(Application.Substitute(chaine, ",", "."))
End Function
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    55.8 KB · Affichages: 61
  • Capture.JPG
    Capture.JPG
    55.8 KB · Affichages: 60
  • Capture.JPG
    Capture.JPG
    55.8 KB · Affichages: 52
  • Capture2.JPG
    Capture2.JPG
    51.8 KB · Affichages: 48
  • Capture2.JPG
    Capture2.JPG
    51.8 KB · Affichages: 51
  • Capture2.JPG
    Capture2.JPG
    51.8 KB · Affichages: 54
Re : Function calcul(chaine)

Bonjour à Tous
Modeste
Merci pour ta formule.
Elle marche parfaitement et avec plus de souplesse.
En effet ma 2ème question allait arrivée.
Comment gérer les :
Alors problème résolu de mon côté.
Merci encore.
A+
 
- 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

Discussions similaires

Retour