Changer les chiffres romains en arabe (Microsoft Word)
Bradley a un document qui a, dans le texte, de nombreux chiffres romains. Il a besoin d’un moyen simple de changer ces milliers de chiffres romains en chiffres arabes.
Ce ne sont pas des domaines de quelque nature que ce soit; ils sont simplement saisis dans le texte en chiffres romains. Il se demande s’il existe un moyen de les changer facilement en leurs équivalents arabes.
Malheureusement, il n’y a aucune fonction dans Word qui convertira les chiffres romains en arabe. Vous pouvez, si vous le souhaitez, simplement utiliser Rechercher et remplacer pour rechercher des chiffres romains, mais vous devrez effectuer une recherche individuelle pour chacun d’eux. Vous pouvez utiliser une recherche par caractères génériques pour rechercher un mot composé entièrement de chiffres romains majuscules, ce qui rendrait la recherche un peu plus facile. Tout ce que vous avez à faire est de rechercher «<[CDILMVX] \ {1,}>» (sans les guillemets) et de vous assurer que la case Utiliser les caractères génériques est cochée. Lorsque vous cliquez sur Suivant, le chiffre romain suivant est localisé et vous pouvez ensuite le modifier manuellement en son équivalent arabe.
Une autre façon d’essayer de faire la conversion consiste à utiliser une macro. Vous pouvez créer une macro qui examine chaque mot de votre document et essaie de déterminer si elle est susceptible d’être composée de chiffres romains. Cependant, vous pouvez obtenir des faux positifs, en particulier si votre document contient des acronymes qui pourraient être confondus avec des chiffres romains. (Par exemple, si vous utilisez l’acronyme CC pour carte de crédit, cela pourrait être considéré comme le chiffre romain pour 200.)
L’ensemble de macros suivant parcourra chacun des mots d’un document et si le mot ne contient que des chiffres romains (I, V, X, L, C, D et M), il est demandé à l’utilisateur si la macro doit convertir le chiffres.
Sub ConvertRoman() Dim wrdX Dim wrd As String Dim tstSW As Boolean Dim J As Long For Each wrdX In ActiveDocument.Words wrd = UCase(Trim(wrdX)) If wrd = "" Or wrd = "I" Or wrd = vbCr Then tstSW = False Else tstSW = True End If For J = 1 To Len(wrd) If InStr("MDCLXVI",Mid(wrd, J, 1)) = 0 Then tstSW = False Exit For End If Next J If tstSW Then wrdX.Select Selection.MoveLeft unit:=wdCharacter, _ Count:=Len(wrdX) - Len(wrd), _ Extend:=wdExtend J = MsgBox("Convert " & wrd & " to Arabic", vbYesNoCancel) If J = vbCancel Then Exit Sub If J = vbYes Then Selection.TypeText Text:=RomanToArabic(wrd) End If Next wrdX End Sub
Function RomanToArabic(Rm As String) As String Dim J As Long Dim ab As Long Dim cc As Long Dim dd As Long ab = 0 Rm = Trim(Rm) J = 1 Do cc = GetValue(Mid(Rm, J, 1)) dd = GetValue(Mid(Rm, J + 1, 1)) If cc < dd Then ab = ab + dd - cc J = J + 1 Else ab = ab + cc End If J = J + 1 Loop Until J >= Len(Rm) If J = Len(Rm) Then ab = ab + GetValue(Mid(Rm, J, 1)) End If RomanToArabic = Trim(Str(ab)) End Function
Function GetValue(ss As String) As Long Dim Cde() Dim Cvalue() Dim J As Long Cde = Array("M", "D", "C", "L", "X", "V", "I") Cvalue = Array(1000, 500, 100, 50, 10, 5, 1) For J = 0 To 6 If ss = Cde(J) Then GetValue = Cvalue(J) Exit Function End If Next J GetValue = 999999 End Function
Étant donné qu’un I majuscule est un mot très courant dans le texte, les macros ne s’arrêteront pas sur chacune d’elles pour déterminer si une conversion doit être effectuée.
Cependant, si le I majuscule fait partie d’un mot plus long composé uniquement de chiffres romains (tels que XLVII), il est considéré comme un candidat à la conversion. Les macros supposent également que tous vos chiffres romains sont en majuscules.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites WordTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / wordribbon-WordTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
WordTips est votre source pour une formation Microsoft Word rentable.
(Microsoft Word est le logiciel de traitement de texte le plus populaire au monde.) Cette astuce (5943) s’applique à Microsoft Word 2007, 2010, 2013, 2016, 2019 et Word dans Office 365. Vous pouvez trouver une version de cette astuce pour le ancienne interface de menu de Word ici:
link: / word-Changing_Roman_Numerals_to_Arabic [Changement des chiffres romains en arabe]
.