Sub Macro1()
Dim O As Object 'déclare la variable O (Onglet)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim PL As Range 'déclare la variable PL (PLage)
Dim CEL As Range 'déclare la variable CEL (CELlule)
Dim C As Integer 'déclare la variable C (Centaines)
Dim D As Byte 'déclare la variable D (Dizaines)
Dim U As Byte 'déclare la variable U (Unités)
Set O = Sheets("Feuil1") 'définit l'onglet O
DL = O.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée de la colonne 1 (=A) de l'onglet O
Set PL = Range("A1:A" & DL) 'définit la plage PL
For Each CEL In PL 'boucle sur toutes les cellules CEl de la plage PL
If CEL <> "" Then 'condition : si la cellule n'est pas vide
C = CInt(Mid(CEL.Value, 1, 1)) + CInt(Mid(CEL.Value, 2, 1)) 'définit la variable C
If C > 9 Then C = CInt(Mid(C, 1, 1)) + CInt(Mid(C, 2, 1)) 'si C est supérieure à 9, redéfinit la variable C
D = CByte(Mid(CEL.Value, 3, 1)) + CByte(Mid(CEL.Value, 4, 1)) 'définit la variable D
If D > 9 Then D = CInt(Mid(D, 1, 1)) + CInt(Mid(D, 2, 1)) 'si D est supérieure à 9, redéfinit la variable D
U = CByte(Mid(CEL.Value, 5, 1)) + CByte(Mid(CEL.Value, 6, 1)) 'définit la variable U
If U > 9 Then U = CInt(Mid(U, 1, 1)) + CInt(Mid(U, 2, 1)) 'si U est supérieure à 9, redéfinit la variable U
CEL.Offset(0, 1).Value = 100 * C + 10 * D + U 'place dans la cellule adjacente à CEL la valeur obtenue
End If 'fin de la condition
Next CEL 'prochaine cellule de la boucle
End Sub