steffy64
Messages postés16Date d'inscriptionmercredi 6 avril 2005StatutMembreDernière intervention 6 avril 2010
-
15 janv. 2008 à 17:52
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 2014
-
15 janv. 2008 à 21:57
Bonjour,
j'ai un petit problème avec access, que je ne controle pas très bien, et j'aurais besoin d'un renseignement.
J'ai une liste de chiffres romains, sur une colonne (ex. V ... III ....II.... IX..) que je voudrais transformer en une liste de chiffres ( 5...3...2...9)
Est-facile de réasliser un programme pour exécuter automatiquement cette commande?
ma liste a plus 70000 lignes, alors à la main......
Merci pour votre aide!!!!
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201314 15 janv. 2008 à 18:47
Salut,
Je pense que tu sais deja que excel integre un fonction qui sait convertire des chiffres arabe en chiffre romain mais n'integre pas de fonction pour la conversion inverse
je n'est pas de solution miracle (helas) mais vas voir ici
Peut etre que quelqu'un a deja codé le truc sinon il va te falloir comprendre et coder
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 15 janv. 2008 à 21:57
Voilà une petite formule à mettre dans une macro. Il ne te reste plus qu'a l'adapter à ton besoin
Public Function CVTRomDec(valeur As String) As Long
Dim sum As Long
Dim incr As Long
Dim decr As Long
If valeur = "" Then
CVTRomDec = 0
Exit Function
End If
sum = 0
For i = Len(valeur) To 1 Step -1
incr = 0
decr = 0
Select Case Mid(valeur, i, 1)
Case "I"
incr = 1
Case "V"
incr = 5
If (i > 1) Then If Mid(valeur, i - 1, 1) =
"I" Then decr = 1
Case "X"
incr = 10
If (i > 1) Then If Mid(valeur, i - 1, 1) = "I" Then decr = 1
Case "L"
incr = 50
If (i > 1) Then If Mid(valeur, i - 1, 1) = "I" Then decr = 1
If (i > 1) Then If Mid(valeur, i - 1, 1) = "X" Then decr = 10
Case "C"
incr = 100
If (i > 1) Then If Mid(valeur, i - 1, 1) = "I" Then decr = 1
If (i > 1) Then If Mid(valeur, i - 1, 1) = "X" Then decr = 10
Case "D"
incr = 500
If (i > 1) Then If Mid(valeur, i - 1, 1) = "I" Then decr = 1
If (i > 1) Then If Mid(valeur, i - 1, 1) = "X" Then decr = 10
If (i > 1) Then If Mid(valeur, i - 1, 1) = "C" Then decr = 100
Case "M"
incr = 1000
If (i > 1) Then If Mid(valeur, i - 1, 1) = "I" Then decr = 1
If (i > 1) Then If Mid(valeur, i - 1, 1) = "X" Then decr = 10
If (i > 1) Then If Mid(valeur, i - 1, 1) = "C" Then decr = 100
Case Else
CVTRomDec = 0
Exit Function
End Select
sum = sum + incr
If decr <> 0 Then
sum = sum - decr
i = i - 1
End If
Next
CVTRomDec = sum
End Function