Définition d'un mot pour une fonction mathématique avec VBA

eole33870

XLDnaute Nouveau
Bonsoir tout le monde,

Est-il possible de définir un mot style "fois" afin de l'utiliser dans une formule comme:
4 "fois" 12*25*36/5 le résultat étant 8640

Pour info le "fois est une nécessité pour différencier les quantités des mesures lorsque l'on
rédige une feuille d'avant métré en chiffrage bâtiment

J'ai besoin d'utiliser le "fois" en toutes lettres et l'étoile (*) dans une même formule.

Je n'arrive pas non plus à faire afficher dans un TextBox le résultat d'une multiplication ou d'une
division de la valeur de deux autres TextBox quand l'une de ces valeurs commence par 0,...



D'avance merci pour vos réponses.
 

Modeste geedee

XLDnaute Barbatruc
Re : Définition d'un mot pour une fonction mathématique avec VBA

Bonsour®
sous réserve que la cellule ne contienne que chiffres ou signes mathématiques et/ou pas le texte : fois(sans guillemets)
Capture.JPG
Code:
Function Evalfois(target)
Evalfois = Evaluate("=" & Application.Substitute(Application.Trim(target), "fois", "*"))
End Function

nb : si séparateur décimal saisi, il doit être . (point) et non ,(virgule)
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    27.7 KB · Affichages: 116
  • Capture.JPG
    Capture.JPG
    27.7 KB · Affichages: 120

ROGER2327

XLDnaute Barbatruc
Re : Définition d'un mot pour une fonction mathématique avec VBA

Bonsoir eole33870, bonsoir à tous.


À essayer :​
Code:
Function v#(c$)
    On Error Resume Next
    v = Evaluate("=" & Replace(Replace(Replace(c, """", ""), "fois", "*", , , vbTextCompare), Application.DecimalSeparator, "."))
    If Err.Number Then v = c
End Function


Bonne nuit.


ℝOGER2327
#7589


Dimanche 1[SUP]er[/SUP] Haha 142 (L’Âge du Dr Faustroll - fête Suprême Seconde)
15 Vendémiaire An CCXXIII, 9,3038h - âne
2014-W41-1T22:19:45Z


P.s. : Bonsoir Modeste geedee. J'ai encore été lent sur ce coup !
 
Dernière édition:

eole33870

XLDnaute Nouveau
Re : Définition d'un mot pour une fonction mathématique avec VBA

Bonjours tout le monde,

Merci pour vos réponses

Mais je ne sais pas ou mettre cette fonction.
Je dois la mettre dans un code, dans un module...
Je voudrais bien vous mettre le fichier en pièce jointe,
mais à l'école je n'ai que winzip et il ne compacte suffisament pour
que je le mette sur le forum.
Est ce que dropbox vous irait?

D'avance merci
 

Modeste geedee

XLDnaute Barbatruc
Re : Définition d'un mot pour une fonction mathématique avec VBA

Bonsour®
cette fonction est à mettre dans un module standard déjà existant
l'utilisation se fait alors en ajoutant dans votre code :
dim Myvariable
'------
' -----code
Myvariable= Evalfois Cible
' -----code

cible : est soit un range(cellule unique), soit un texte issu d'un textebox ou concaténation de plusieurs variables

Myvariable= Evalfois cells(3,5) ' cells(3,5) contient un texte type : 4 fois 12*25*36/5
Myvariable= Evalfois userform1.textbox2 ' textbox2 contient un texte similaire
Myvariable= Evalfois Var_Nbrep &" fois" & Var_Largeur &"*"& var_Longueur &"*" & var_hauteur
 

eole33870

XLDnaute Nouveau
Re : Définition d'un mot pour une fonction mathématique avec VBA

Désolé je me suis peut être mal expliquer

la formule 4fois5*25*9 par exemple est directement tapée dans une cellule,
j'ai juste besoin qu'excel me reconnaisse fois comme* tout en gardant quand
même * comme signe multiplicateur (si trop compliquer possibilité de remplacer *
par x à la limite ce serait mieux)
Cette cellule va se calculer directement dans une autre avec la fonction "=calcul"
qui m'évite de taper "="
Je vous joint un fichier
Pour diviser on verra un peu plus tard

D'avance merci pour votre disponibilité
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Définition d'un mot pour une fonction mathématique avec VBA

Bonjour à tous.


À tout hasard car j'ai du mal à tout comprendre. En supposant que "fois" et "fs" sont synonymes de "*", voyez deux propositions dans le classeur joint, utilisant les fonctions :​
Code:
Function v(c$) As Variant
    v = Evaluate("=" & Replace(Replace(Replace(Replace(c, """", ""), "fois", "*", , , 1), "fs", "*", , , 1), Application.DecimalSeparator, "."))
    If IsError(v) Then v = c
End Function

Function w(c$) As Variant
    w = Replace(Replace(Replace(Replace(c, """", ""), "fois", "*", , , 1), "fs", "*", , , 1), ".", Application.DecimalSeparator)
    If IsError(w) Then w = c
End Function
Les fonctions sont dans le module Module1. Pour le trouver, voir les explications de Modeste geedee (que je salue au passage).​


ℝOGER2327
#7590


Lundi 2 Haha 142 (Dissolution d’Edgar Poe, dinomythurge - fête Suprême Quarte)
16 Vendémiaire An CCXXIII, 6,3373h - belle-de-nuit
2014-W41-2T15:12:34Z
 

Pièces jointes

  • Foismétré-1.xlsm
    20.4 KB · Affichages: 31
  • Foismétré-1.xlsm
    20.4 KB · Affichages: 31
  • Foismétré-1.xlsm
    20.4 KB · Affichages: 30

eole33870

XLDnaute Nouveau
Re : Définition d'un mot pour une fonction mathématique avec VBA

Bonsoir tout le monde,

Merci pour votre disponibilité et vos réponses
Pour ROGER2327 je renvoie le fichier avec juste une précision
Quand je sélectionne "+"en colonne B alors le résultat doit aller
en colonne L "en +" et lorsque je sélectionne "-" toujours en
colonne B le résultat doit aller dans la colonne M "en -"

Sinon c'est exactement ce dont nous avons besoin à l'école

Une fois que j'aurai cela qui fonctionne je m'attaquerai aux
sous-totaux dans les colonnes L et M afin de créer une ligne
Total qui me fera la différence des deux en colonne N

D'avance un grand merci de la part de 7 pauvre auto-étudiants
 

Pièces jointes

  • Foismétré-1.xlsm
    20.5 KB · Affichages: 31
  • Foismétré-1.xlsm
    20.5 KB · Affichages: 38
  • Foismétré-1.xlsm
    20.5 KB · Affichages: 31

eole33870

XLDnaute Nouveau
Re : Définition d'un mot pour une fonction mathématique avec VBA

Bonjours à tout le monde,

Bon ça y est mon programme fonctionne
Merci pour l'aide que vous m'avez apporté

Je me lance maintenant sur un autre projet
Incluant des opérations mathématiques ( + , - , * , / )
avec des valeurs saisies dans des TextBox

Donc je reviendrai vers vous.

Pour mon petit programme de métré, si ça intérresse quelq'un je pourrai peut être le mettre à dispo

A plus et encore merci
 

Modeste geedee

XLDnaute Barbatruc
Re : Définition d'un mot pour une fonction mathématique avec VBA

Bonsour®
Je me lance maintenant sur un autre projet
Incluant des opérations mathématiques ( + , - , * , / )
avec des valeurs saisies dans des TextBox
c'est ce que fait la fonction Evaluate telle que proposée là :https://www.excel-downloads.com/thr...ur-une-fonction-mathematique-avec-vba.224658/
sous réserve que la cellule ne contienne que chiffres ou signes mathématiques et/ou pas le texte : fois(sans guillemets)
 

ROGER2327

XLDnaute Barbatruc
Re : Définition d'un mot pour une fonction mathématique avec VBA

Bonjour à tous.


Bonsour®
c'est ce que fait la fonction Evaluate telle que proposée là :https://www.excel-downloads.com/thr...ur-une-fonction-mathematique-avec-vba.224658/
... et c'est ce que font toutes les autres[SUP]1[/SUP] propositions.​


Bonne journée.


ℝOGER2327
#7597


Mardi 3 Haha 142 (Saint Gibus, franc-maçon - fête Suprême Quarte)
17 Vendémiaire An CCXXIII, 5,4741h - citrouille
2014-W41-3T13:08:16Z


[SUP]1[/SUP] Merci Modeste geedee !
 

Pièces jointes

  • Evaluation d'expressions.xlsm
    19.2 KB · Affichages: 46
Dernière édition:

Discussions similaires

Réponses
21
Affichages
1 K

Statistiques des forums

Discussions
312 450
Messages
2 088 515
Membres
103 873
dernier inscrit
Sabin