Chiffre arabe en romain
Résolu/Fermé
tiplouf2
Messages postés
703
Date d'inscription
samedi 23 août 2008
Statut
Membre
Dernière intervention
15 mai 2017
-
26 oct. 2012 à 09:54
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 29 oct. 2012 à 17:52
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 29 oct. 2012 à 17:52
A voir également:
- Convertisseur chiffre en lettre en arabe
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Application pour écrire les chiffre en lettre - Télécharger - Outils professionnels
- Telecharger clavier arabe تنزيل لوحة المفاتيح العربية - Télécharger - Divers Web & Internet
- Convertisseur mp3 - Télécharger - Conversion & Extraction
- Télécharger clavier arabe samsung - Télécharger - Bureautique
3 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
26 oct. 2012 à 17:54
26 oct. 2012 à 17:54
re,
On convertit un chiffre arabe <4000 en chiffre romain
par ex 2954 devrait donner MMCMLIV
proposition VBA
On convertit un chiffre arabe <4000 en chiffre romain
par ex 2954 devrait donner MMCMLIV
proposition VBA
Dim Romain As String Sub test() convertir_arabic_roman 1054 MsgBox Romain Romain = "" End Sub '-------- Sub convertir_arabic_roman(Nombre) Dim Chiffre As Byte If Nombre > 3999 Then GoTo depassement 'milliers If Nombre > 999 Then Chiffre = Int(Nombre / 1000) 'romain = Application.Rept("M", chiffre) 'VbA Excel For cptr = 1 To Chiffre Romain = Romain & "M" Next Nombre = Nombre Mod 1000 End If 'centaines If Nombre > 99 Then concatener_romain Nombre, 100, "C", "D" Nombre = Nombre Mod 100 End If 'dizaines If Nombre > 9 Then concatener_romain Nombre, 10, "X", "L" Nombre = Nombre Mod 10 End If 'unités concatener_romain Nombre, 1, "I", "V" Exit Sub depassement: MsgBox "nombre > 3999", vbCritical End Sub '--------- Sub concatener_romain(Arabe, Diviseur, Encours, Cinq_n) Dim Chiffre As Byte Dim Ssschiffre As String Chiffre = Int(Arabe / Diviseur) Select Case Chiffre Case Is = 9 Romain = Romain & Encours & Right(Romain, 1) Case Is > 5 For cptr = 6 To Chiffre sschiffre = sschiffre & Encours Next Romain = Romain & Cinq_n & sschiffre Case Is = 5 Romain = Romain & Cinq_n Case Is = 4 Romain = Romain & Encours & Cinq_n Case Else For cptr = 1 To Chiffre Romain = Romain & Encours Next End Select End Sub
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
26 oct. 2012 à 10:20
26 oct. 2012 à 10:20
Bonjour,
Tu pourrais expliquer plus clairement ton soucis ?
Tu as un problème de police de caractère ?
Tu veux un algorithme qui traduise un nombre écrit en français en chiffre romain ? Ou un nombre écrit en arabe en chiffre romain ?
Tu as un problème pour créer un projet dans Visual Studio ?
C'est vraiment pas clair !
Xavier
Tu pourrais expliquer plus clairement ton soucis ?
Tu as un problème de police de caractère ?
Tu veux un algorithme qui traduise un nombre écrit en français en chiffre romain ? Ou un nombre écrit en arabe en chiffre romain ?
Tu as un problème pour créer un projet dans Visual Studio ?
C'est vraiment pas clair !
Xavier
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 26/10/2012 à 12:01
Modifié par michel_m le 26/10/2012 à 12:01
Bonjour,
On trouve quelques proc VB pour traduire des chiffres romains en chiffres arabes
au cas où cela t'interesserait
http://frederic.sigonneau.free.fr/code/Fonctions/ChiffresRomainsChiffresArabes1.txt
http://frederic.sigonneau.free.fr/code/Fonctions/ChiffresRomainsChiffresArabes2.txt
une piste: l'idée serait d'utiliser les propriétés INT d'une division et MOD pour le reste et répétition du résultat et concaténer
par exemple 2200: nbre_m= int(arabe,1000) renvoie 2 soit rept("M",nbre_int)
ensuite
arabe=arabe mod 1
a vue de nez, le problème reste le cas des chiffres 4 et 9
je regarde de mon coté (VBA)
nota : on ne pourra certainement pas aller au delà de 3999
Michel
On trouve quelques proc VB pour traduire des chiffres romains en chiffres arabes
au cas où cela t'interesserait
http://frederic.sigonneau.free.fr/code/Fonctions/ChiffresRomainsChiffresArabes1.txt
http://frederic.sigonneau.free.fr/code/Fonctions/ChiffresRomainsChiffresArabes2.txt
une piste: l'idée serait d'utiliser les propriétés INT d'une division et MOD pour le reste et répétition du résultat et concaténer
par exemple 2200: nbre_m= int(arabe,1000) renvoie 2 soit rept("M",nbre_int)
ensuite
arabe=arabe mod 1
a vue de nez, le problème reste le cas des chiffres 4 et 9
je regarde de mon coté (VBA)
nota : on ne pourra certainement pas aller au delà de 3999
Michel
Modifié par lermite222 le 29/10/2012 à 16:29
Belle démo (+1) : tu devrais la poster dans les astuces.
Mais appariement il y a une fonction VB que tu a oublié (:
Équivalent :
Cdlt.
Modifié par michel_m le 29/10/2012 à 17:31
merci pour les compliments :o), j'en suis tout colorindex 3 !!!
concernant ta remarque en Excel j'ai utilisé la fonction worksheetfunction "rept"(voir le code + haut), je regarde ta suggestion je te passe la version Excel (macros paramétrées)
29 oct. 2012 à 17:52
ci joint la bricole
https://www.cjoint.com/?3JDr0dtKtyx