Macro o Función para cambio de letras por números

Necesito tener una Macro o función que me permita reemplazar un código hecho por letras a un numero único de acuerdo al abecedario, es decir, A=1, B=2, C=3, etc. Los cogido siempre contienen un punto que los separa, me gustaría que se eliminara o no se tomara en cuenta ese punto, solo que reemplazar las letras existente por el numero según abecedario.
Ejemplo
     A             B
1 BHP.BA      282121      donde B=2, H=8, P=21, B=2, A=1)
2 TELC. CA 25512331
3 RAET. BA lo mismo para este.
Bueno creo que queda claro, en resumen la macro o la fucion la ejecuto y transforma cualquier código de letras en números según el que le corresponda en abecedario, eso si, obviando el punto que separa el texto.
Yo sé que a lo mejor es mucho pedir, pero por lo mismo recurro a ustedes que son los expertos.

1 Respuesta

Respuesta
1
Según lo que indicas, entiendo que ya posees el macro que reemplaza texto por número. Pero si te molesta el punto, por que no copias los datos en una columna aparte, le eliminas el punto, ¿con la función reemplazar y luego sobre esos datos aplicas el macro?
Para reemplazar el punto, seleccina toda la columna aplicas tecla CTRL + B en "buscar pones el punto y en reemplazarno pones nada
De esa forma eliminas el punto
Estimado.
Gracias por responder...
Pero no tengo esa macro eso es lo que busco, bueno ahora un paso menos, ya he eliminado ese punto. Ahora solo necesito la macro para convertir el texto en números y asignar a cada letra un numero según abecedario, es decir, A=1. B=2, etc.
Muchas gracias
YA.
En un modulo pones esto:
Option Explicit
Dim cadena As String
Function codifica(ByRef texto As Range)
Dim i As Long
For i = 1 To Len(texto)
    letra (UCase(Mid(texto, i, 1)))
DoEvents
Next
codifica = cadena
cadena = ""
End Function
Sub letra(c As String)
Select Case c
    Case Is = "A"
        cadena = cadena & 1
    Case Is = "B"
        cadena = cadena & 2
    Case Is = "C"
        cadena = cadena & 3
    Case Is = "D"
        cadena = cadena & 4
End Select
End Sub
la funcion la utilizas como cualqueir funcion de excel, ejemplo
=codifica(B3)
En donde b3 es el texto a codificar "ABC" debe dar = 123
si te fijas el select case llega hasta la D
tu lo completas hasta la Z, ojo, pon las letras en mayúsculas en el select
en cuanto a introducirlos en excel. No importa si están en mayúsculas o minúsculas.
Muchas gracias.
Sabes abro visual basic, creo el modulo, pego lo que me has dicho y cuando voy a guardar me aparece lo siguiente:
Las siguientes características no se pueden guardar en libros sin macros...
Bueno yo apretó si, para guardarlo igual y cuando voy a utilizar la función, no me aparece solo una venta diciendo:
Se ha detectado un nombre ambiguo : codifica
Uf estoy bien enredado con esto.
Muchas gracias por tu paciencia.
Saludos
Problema resuelto.
Option Explicit
Dim cadena As String
Public Function CODIFICAR(ByRef texto As Range)
Dim i As Long
For i = 1 To Len(texto)
    letra (UCase(Mid(texto, i, 1)))
DoEvents
Next
CODIFICAR = cadena
cadena = ""
End Function
Sub letra(c As String)
Select Case c
    Case Is = "A"
        cadena = cadena & 1
    Case Is = "B"
        cadena = cadena & 2
    Case Is = "C"
        cadena = cadena & 3
    Case Is = "D"
        cadena = cadena & 4
End Select
End Sub
Muchas gracias!
Podrías evaluar y cerrar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas