Programme acess

Signaler
Messages postés
16
Date d'inscription
mercredi 6 avril 2005
Statut
Membre
Dernière intervention
6 avril 2010
-
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
-
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!!!!

Steffy

2 réponses

Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
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

A+
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
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

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php