Conversión Siglas presentes en texto a Nombre Completo

En excel 2010, tengo una tabla en la que pego unos datos de contabilidad y una de las columnas, correspondiente al concepto incluimos las siglas de la persona a la que corresponde el asiento de nóminas, seguros sociales, etc.

Lo que necesito es que en una nueva columna de la tabla, ponga el nombre completo de la persona.

Inicialmente, para ello, he creado una tabla en una hoja distinta cuyas columna son las siglas y nombre completo de la persona, seguidamente, haciendo uso de las formulas Encontrar, Extraer y buscarV como se se puede apreciar en el fichero que se facilita.

No obstante, dicha solución considero que no es la mas eficiente y presenta el inconveniente de que cada vez que se añada una persona con sus iniciales en la lista, habría que modificar la formula añadiendo una mas.

Por ello, os realizo esta consulta y os facilite enlace al archivos esperando encontrar una

mejor solución que la actual.

https://www.dropbox.com/sh/06myn9acs13se56/UvQrI25_Hu

Muchas Gracias.

1 respuesta

Respuesta
1

Dime tu mail y te lo mando corregido

Y de todas formas pongo aquí la macro para quién la quiera usar con tu ejemplo:

(Espero tu mail)

Sub nombres()
'macro creada por Luis Mondelo
Dim valor As String
Range("k2").Select
Do While ActiveCell.Offset(0, -4).Value <> ""
tope = Len(ActiveCell.Offset(0, -4).Value)
For x = tope To 1 Step -1
extrae = Mid(ActiveCell.Offset(0, -4), x, 1)
If IsNumeric(extrae) Or extrae = "-" Or extrae = " " Then
extrae = ""
GoTo salto
Else
valor = Mid(ActiveCell.Offset(0, -4).Value, x - 2, 3)
Set busca = Sheets("DATOS GENERALES").Range("g2:g" & Sheets("DATOS GENERALES").Range("g65000").End(xlUp).Row).Find(valor, LookIn:=xlValues, lookat:=xlWhole)
If Not busca Is Nothing Then
ActiveCell.Value = busca.Offset(0, 1)
Exit For
End If
salto:
End If
Next
ActiveCell.Offset(1, 0).Select
Loop
End Sub

Pensaba que no tendría que recurrir a una macro, voy a probar y analizar la misma.

Envío e-mail por privado.

Gracias.

Mi correo es [email protected]

Mi correo es [email protected].

Por lo que veo funciona pero no consigo entender el funcionamiento o las instrucciones de los comandos, voy a ver por internet.

No obstante, tiene el problema que cuando se pone un texto que no contiene ninguno de los caracteres se interrumpe la Macro.

Ya te lo he enviado por mail

Recuerda finalizar la consulta

¿Como podría evitar que la macro se interrumpa cuando busque en una celda que no tenga ninguna de las siglas?

Escribe esta línea de código al principio de la macro:

ON ERROR RESUME NEXT

Escríbela justo después de la línea donde dice "macro creada por Luis Mondelo

Me hubiese gustado poder resolverle sin el uso de una Macro, pero me imagino que no existe forma mas eficiente que optar por este sistema.

Muchas Gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas