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

Math et Trigo REGLE3

Etoto

XLDnaute Barbatruc
Bonjour à tous voici la fonction qui s'occupe de faire la règle de trois. Je sais que des fois c'est plus simple de faire à la main mais je l'ai quand même prise.

Je suis apte à toute amélioration vu que le VBA c'est pas mon fort, je n'ai fait qu'avec le peut de connaissance que j'ai mais elle est fonctionnelle.

Voici un fichier qui montre son fonctionnement.

VB:
Function REGLE3(number1, number2, numberchoice)
If Not (IsNumeric(number1) And IsNumeric(numberchoice) And IsNumeric(number2)) Then REGLE3 = "Err String": Exit Function
If Val(number2) = 0 Then REGLE3 = "Err Div0": Exit Function

REGLE3 = number1 * numberchoice / number2 'Pas de factorisation inutile

End Function
Sub test()
Debug.Print REGLE3(10, 100, 50), REGLE3(10, 0, 50), REGLE3("A", 10, 50)
End Sub

Créateur : Etoto
Amélioration : dysorthographie
 

Pièces jointes

  • REGLE3.xlsm
    14.2 KB · Affichages: 11
Dernière édition:

dysorthographie

XLDnaute Accro
Bonjour,
Une évaluation des termes pour éviter les messages d'erreurs n'aurais pas été du luxe !

Si non c'est bien comme ça que fonctionne une règle de trois !

Notes que la (factorisation) n'est pas utile !
Code:
debug.print REGLE3("number1", "number2", "numberchoice")
Ça fait une erreur
 

Etoto

XLDnaute Barbatruc
Mince ! Une idée ? Je débute encore donc je suis ouvert à toute amélioration.
 

soan

XLDnaute Barbatruc
Inactif
Bonjour,

si c'est l'erreur de division par zéro qu'il faut éviter, je propose :

If number2 <> 0 Then REGLE3 = (number1 * numberchoice) / number2

soan
 

dysorthographie

XLDnaute Accro
Code:
Function REGLE3(number1, number2, numberchoice)
If Not (IsNumeric(number1) And IsNumeric(numberchoice) And IsNumeric(number2)) Then REGLE3 = "Err String": Exit Function
If Val(number2) = 0 Then REGLE3 = "Err Div0": Exit Function

REGLE3 = number1 * numberchoice / number2 'Pas de factorisation inutile

End Function
Sub test()
Debug.Print REGLE3(10, 100, 50), REGLE3(10, 0, 50), REGLE3("A", 10, 50)
End Sub
 

Etoto

XLDnaute Barbatruc
Merci, je l'a prend comme fonction de base.
 

Discussions similaires

Réponses
14
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…