domingo, 30 de abril de 2017

Invertir cadenas de texto en excel creando una función personalizada con vba

Dentro de las muchas funciones para el tratamiento de textos que trae excel incluidas no hay una que nos permita invertir cadenas. Es cierto, no la hay. Si tenemos en una celda: "Hola" y queremos invertirla para tener: "aloH" no lo podemos hacer con las funciones disponibles.

Sin embargo, la librería de funciones que incluye vba si tiene una para cumplir con dicho propósito. Se llama StrReverse( ) y lo que nos pide como argumento, es una cadena de texto para poder invertirla.

Como la función esta disponible en vba, tendremos que escribir un poco de código y crear una función personalizada. Así es, en excel también podemos crear nuestras propias funciones y llamarlas en nuestras hojas de cálculo tal y como lo hacemos con BUSCARV, BUSCARH, IZQUIERDA, DERECHA o cualquier otra.

Vamos entonces a construir una función con la que podamos invertir la cadena de texto que tenemos en la celda B2:


Digitamos la combinación de teclas Alt + F11 para llamar el editor de vba y creamos un nuevo módulo:


Y vamos a escribir el siguiente código:


La diferencia con las otras macros que escribimos es que esta es una función. Como ven, inicia por la palabra reservada Function. Para que una función en excel retorne un dato se escribe el nombre de la función y el valor que queremos que retorne, que en nuestro caso es la función invertida.

La vamos a probar en excel se la siguiente forma, en la celda B3 vamos a insertar una función:


Seleccionamos definidas por el usuario y escogemos la que creamos (invertir_cadena):


Solo nos pide un argumento, que fue lo que definimos en la creación de la función. vamos entonces a pasar como argumento la cadena de texto que esta en B2:


Y damos clic en Aceptar:


Listo, como pueden ver tenemos nuestra cadena de texto invertida. Este es el código para hacerlo:


Código

Espero les sirva. Hasta una próxima.

No hay comentarios.:

Publicar un comentario