Remplacer des chiffres par des lettres

JACRAV

XLDnaute Nouveau
Bonsoir à tous.

Est-il possible en vba de remplacer des chiffres par des lettres et dans l'affirmative comment faire?
Par exemple le nombre 10234 deviendrait BACDE sachant que les équivalences prèdéfinies seraient:
0=A,1=B,2=C,3=D,4=E,5=F,6=G,7=H,8=I,9=J
Je vous remercie par avance pour votre aide.
Bien cordialement
Jacques
 

Etienne2323

XLDnaute Impliqué
Re : Remplacer des chiffres par des lettres

Salut JACRAV,
voici une solution.

Vous n'avez qu'à copier ce bout de code dans un module. Il s'agit d'une fonction personnalisée.

Code:
Function Mes_Lettres(Plage As Range)

Dim a$, B$
Dim Chaine, u
Dim i As Byte

Chaine = Plage.Value

a$ = "0123456789"
B$ = "ABCDEFGHIJ"

For i = 1 To Len(Chaine)
    u = InStr(1, a, Mid(Chaine, i, 1), 0)
    If u Then Mid(Chaine, i, 1) = Mid(B, u, 1)
Next i

Mes_Lettres = Chaine

End Function

Vous pourrez ensuite utiliser la formule
Code:
=Mes_Lettres(cliquer sur la plage contenant les chiffres)
pour faire la conversion.

Si vous souhaitez inscrire un 0 comme premier terme et que ce dernier ne soit pas supprimer automatiquement par Excel, simplement ajouter un apostrophe --> ' devant le 0.

Bonne soirée,

Étienne
 
C

Compte Supprimé 979

Guest
Re : Remplacer des chiffres par des lettres

Bonsoir,

Ou plus simplement
Code:
Sub Test()
  MsgBox Retour_Lettres(10234)
End Sub
Function Retour_Lettres(MaVal As String)
  Dim I As Integer, TabStr As String
  TabStr = "ABCDEFGHJ": Retour_Lettres = ""
  For I = 1 To Len(MaVal)
    Retour_Lettres = Retour_Lettres & Mid(TabStr, Mid(MaVal, I, 1) + 1, 1)
  Next
End Function

A+
 

ROGER2327

XLDnaute Barbatruc
Re : Remplacer des chiffres par des lettres

Bonjour à tous
Une autre :
VB:
Function EnLettres$(r$)
Application.Volatile
Dim i&
    For i = 1 To Len(r): EnLettres = EnLettres & Chr(Asc(Mid$(r, i, 1)) + 17): Next
End Function

Transformation inverse :
VB:
Function EnChiffres$(r$)
Application.Volatile
Dim i&
    For i = 1 To Len(r): EnChiffres = EnChiffres & Chr(Asc(Mid$(r, i, 1)) - 17): Next
End Function
ROGER2327
#4976


Lundi 2 Pédale 138 (Saint André Marcueil, ascète cycliste, SQ)
6 Ventôse An CCXIX
2011-W08-4T01:53:00Z
 

ROGER2327

XLDnaute Barbatruc
Re : Remplacer des chiffres par des lettres

Suite
J'oubliais ces deux-là :
VB:
Function EnLettres$(r$)
  Do While Len(r) - Len(EnLettres): EnLettres = EnLettres & Chr(Asc(Mid$(r, 1 + Len(EnLettres))) + 17): Loop
End Function

Function EnChiffres$(r$)
  Do While Len(r) - Len(EnChiffres): EnChiffres = EnChiffres & Chr(Asc(Mid$(r, 1 + Len(EnChiffres))) - 17): Loop
End Function
ROGER2327
#4977


Lundi 2 Pédale 138 (Saint André Marcueil, ascète cycliste, SQ)
6 Ventôse An CCXIX
2011-W08-4T02:48:57Z
 

JACRAV

XLDnaute Nouveau
Re : Remplacer des chiffres par des lettres

Bonjour à tous
Merci beaucoup pour vos réponses.Grace à vous je vais pouvoir poursuivre l'élaboration de mon programme.
Si j'ai un pb je me permetrai de sous solliciter à nouveau.
Bonne journée.
Bien cordialement
Jacques
 

Discussions similaires

Statistiques des forums

Discussions
312 502
Messages
2 089 024
Membres
104 007
dernier inscrit
Monvieux