Programme acess

steffy64 Messages postés 16 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 6 avril 2010 - 15 janv. 2008 à 17:52
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 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!!!!

Steffy

2 réponses

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

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

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