Nouveau système de calcul
Bonjour/bonsoir,
Je poste cette requête car j'ai un léger problème avec Excel (sinon je ne serais pas là). En effet, et pourtant j'ai cherché des tutoriels mais cela n'a rien donné de concret, je cherche à créer un nouveau système de calcul qu'Excel puisse comprendre non pas en décimal (base de 10) mais... en septa décimal (ou heptadécimal, je ne sais pas comment le nommer [base de 7]). C'est-à-dire un système de calcul où l'équivalent de nos dizaines serait 10 (0;1;2;3;4;5;6;10;..., soit 7 en décimal), de ne centaines 100 (60;61;62;63;64;65;66;100;..., soit 49 en décimal), et cetera.
Je suis sûr et certain que c'est tout à fait possible à réaliser (nous avons un bel exemple avec l'hexadécimal, donc une autre base que celle de 10) et sans doute simple, mais je n'ai pas une grande expérience avec ce logiciel étonnement polyvalent. Je m'en remet donc à vos conseils et à votre aide qui me seront sans aucun doute très utiles et précieux pour la suite.
Je vous remercie d'avance de vos réponses (et de votre attention !),
M104_Sombrero
Salut,
Trouvé sur la toile, le code ci-dessous est à placer dans un module et il permet d'avoir une fonction personnalisée sur ta feuille de calcul (dans mon fichier ci-joint, formule =BaseConv($A2;B$1) placée en B2 et incrémentée vers la droite et vers le bas) :
Option Explicit
Function BaseConv(InputNum, BaseNum)
Dim Quotient, Remainder As Single
Dim Answer As String
Quotient = InputNum ' Set quotient to number to convert.
Remainder = InputNum ' Set remainder to number to convert.
Answer = ""
Do While Quotient <> 0 ' Loop while quotient is not zero.
' Store the remainder of the quotient divided by base number in a
' variable called remainder.
Remainder = Quotient Mod BaseNum
' Reset quotient variable to the integer value of the quotient
' divided by base number.
Quotient = Int(Quotient / BaseNum)
' Reset answer to contain remainder and the previous answer.
Answer = Remainder & Answer
' Convert answer variable to a number.
Loop
BaseConv = Val(Answer)
End FunctionApparemment ça ne fonctionne pas au-dessus de base 10.
Cordialement.
Bonsoir,
Tu as posté dans la rubrique Calc qui est normalement dédiée à OpenOffice ou LibreOffice.
Et justement ces 2 suites ont une fonction pour ça : BASE()
https://wiki.openoffice.org/wiki/FR/Documentation/Calc:_fonction_BASE
Cette fonction permet de convertir un nombre décimal dans n'importe quelle base de 2 à 36.
De même sa fonction réciproque DECIMAL convertit en décimal un nombre écrit dans n'importe quelle vase de 2 à 36.
Yvouille a écrit :Apparemment ça ne fonctionne pas au-dessus de base 10.
Logique cette fonction macro calcule des modulo (donc des nombres), et au delà de 10 on utilise les lettres de l'alphabet. (cf l'hexadécimal)
A+