Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pour le plaisir : Romain ------> Arabe

3 réponses
Avatar
Tatanka
Bonchoir, Bonchoir,

La fonction ROMAIN transforme un nombre arabe
compris entre 1 et 3999 en nombre romain.
Mais aucune fonction ne fait l'inverse.
Pour pallier à cette grave lacune, voici enfin la
fonction arabe ;-)
Lettres admises :
i ou I, v ou V, x ou X, l ou L, c ou C, d ou D, m ou M.

Function arabe(n As String)
rep = ch(Right(n, 1))
For i = Len(n) - 1 To 1 Step -1
x = ch(Mid(n, i, 1))
If x >= ch(Mid(n, i + 1, 1)) Then
rep = rep + x
Else
rep = rep - x
End If
Next i
arabe = rep
End Function

Function ch(a As String)
Select Case UCase(a)
Case "I": ch = 1
Case "V": ch = 5
Case "X": ch = 10
Case "L": ch = 50
Case "C": ch = 100
Case "D": ch = 500
Case "M": ch = 1000
End Select
End Function

Exemple :
En A1 : MMMDCCCLXXXVIII
En B1 : =arabe(A1)

Allez hop ! petites cervoises et ...
Serge

3 réponses

Avatar
Philippe.R
Allez hop !
une fonction de + dans le perso
Merci
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/web/mpfe
News://news.microsoft.com/microsoft.public.fr.excel
"Tatanka" a écrit dans le message de
news:%
Bonchoir, Bonchoir,

La fonction ROMAIN transforme un nombre arabe
compris entre 1 et 3999 en nombre romain.
Mais aucune fonction ne fait l'inverse.
Pour pallier à cette grave lacune, voici enfin la
fonction arabe ;-)
Lettres admises :
i ou I, v ou V, x ou X, l ou L, c ou C, d ou D, m ou M.

Function arabe(n As String)
rep = ch(Right(n, 1))
For i = Len(n) - 1 To 1 Step -1
x = ch(Mid(n, i, 1))
If x >= ch(Mid(n, i + 1, 1)) Then
rep = rep + x
Else
rep = rep - x
End If
Next i
arabe = rep
End Function

Function ch(a As String)
Select Case UCase(a)
Case "I": ch = 1
Case "V": ch = 5
Case "X": ch = 10
Case "L": ch = 50
Case "C": ch = 100
Case "D": ch = 500
Case "M": ch = 1000
End Select
End Function

Exemple :
En A1 : MMMDCCCLXXXVIII
En B1 : =arabe(A1)

Allez hop ! petites cervoises et ...
Serge








Avatar
AndréBdR
Je me suis régalé.

"Tatanka" a écrit dans le message de news:
%
Bonchoir, Bonchoir,

La fonction ROMAIN transforme un nombre arabe
compris entre 1 et 3999 en nombre romain.
Mais aucune fonction ne fait l'inverse.
Pour pallier à cette grave lacune, voici enfin la
fonction arabe ;-)
Lettres admises :
i ou I, v ou V, x ou X, l ou L, c ou C, d ou D, m ou M.

Function arabe(n As String)
rep = ch(Right(n, 1))
For i = Len(n) - 1 To 1 Step -1
x = ch(Mid(n, i, 1))
If x >= ch(Mid(n, i + 1, 1)) Then
rep = rep + x
Else
rep = rep - x
End If
Next i
arabe = rep
End Function

Function ch(a As String)
Select Case UCase(a)
Case "I": ch = 1
Case "V": ch = 5
Case "X": ch = 10
Case "L": ch = 50
Case "C": ch = 100
Case "D": ch = 500
Case "M": ch = 1000
End Select
End Function

Exemple :
En A1 : MMMDCCCLXXXVIII
En B1 : =arabe(A1)

Allez hop ! petites cervoises et ...
Serge








Avatar
FS
Bonsoir,

> La fonction ROMAIN transforme un nombre arabe
> compris entre 1 et 3999 en nombre romain.
> Mais aucune fonction ne fait l'inverse.

Objection Votre Honneur :

http://groups.google.fr/group/microsoft.public.fr.excel/browse_thread/thread/cea530fa34910611/e627497d01cf0901?hl=fr&q=rominverse+group:*fr.excel#e627497d01cf0901

(Ça ne nous rajeunit pas !!).

Et on a même eu une fonction ROMAIN améliorée pour convertir les nombres
jusqu'à 999 999 (c'est vrai, pourquoi s'arrêter à 3999 ?) :

http://groups.google.fr/group/microsoft.public.fr.excel/browse_thread/thread/2f69dce8dcf369da/eb9c68026cd98620?hl=fr&q=rominverse+group:*fr.excel#eb9c68026cd98620

Et j'en passe, dans les fonctions farfelues :)

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Tatanka a écrit :
Bonchoir, Bonchoir,

La fonction ROMAIN transforme un nombre arabe
compris entre 1 et 3999 en nombre romain.
Mais aucune fonction ne fait l'inverse.
Pour pallier à cette grave lacune, voici enfin la
fonction arabe ;-)
Lettres admises :
i ou I, v ou V, x ou X, l ou L, c ou C, d ou D, m ou M.

Function arabe(n As String)
rep = ch(Right(n, 1))
For i = Len(n) - 1 To 1 Step -1
x = ch(Mid(n, i, 1))
If x >= ch(Mid(n, i + 1, 1)) Then
rep = rep + x
Else
rep = rep - x
End If
Next i
arabe = rep
End Function

Function ch(a As String)
Select Case UCase(a)
Case "I": ch = 1
Case "V": ch = 5
Case "X": ch = 10
Case "L": ch = 50
Case "C": ch = 100
Case "D": ch = 500
Case "M": ch = 1000
End Select
End Function

Exemple :
En A1 : MMMDCCCLXXXVIII
En B1 : =arabe(A1)

Allez hop ! petites cervoises et ...
Serge