Tip:
Highlight text to annotate it
X
Bienvenidos
Bienvenidos a este pequeño vídeo tutorial sobre como crerar una función que traduzca nombres de funciones de la lengua local a inglés
A veces tenemos que trabajar con versiones de excel en inglés y utilizar nuestra versión en español para llevar acabo la traducción sería de gran utilidad
yo particularmente hace dos días leyendo la última entrada en el blog de Chandoo sobre como sumar tres valores bajo cierto criterio, me encontre en una situación, muy particular
No me fue evidente indentificar la equivalencia de la función LARGE en español
Aunque esta situación era el caso contrario, de inglés a español, será de gran utilidad empezar por crear la función de español a inglés, utilizando la conversión interna que hace Visual Basic
Aqui tenemos algunos ejemplos de nombres de funciones que son evidentes, en la parte superior; por ejemplo el caso SUMA que es SUM y el caso SI que es IF, como otros casos que no son tan evidentes como fue el que me encontre hace dos días
la función LARGE, que en español K.ESIMO.MAYOR, aquí falto el punto
Pero no es evidente identificar, entonces comenzar por crear una función que traduzca los nombres de español a inglés
nos ayudara a identificar; mucho más rápido
Vamos a nuestro libro de excel, para crear la función
Aquí tenemos algunos datos donde ya hay algunas fórmulas, para probar la nueva fórmula que vamos a crear
Pulsamos la combinación de teclas Alt F11, para abrir el editor de visual basic
Vamos al menu insertar
insteramos un modulo
Y aquí es donde vamos a escribir nuestras sentencias de código para crear la función
Primero
Option explicit
y con estó
haremos que la declaración de variables sea completamente obligatoria, esto siempre es una buena practica poner option explicit al principio de todas nuestras líneas de código (Por cada Modulo)
creamos una función
Public Function, la llamaremos TRADUCTOR
esta función necesitará, un parámetro, necesitará recibir un parámetro
lo pasamos por valor (ByVal)
lo llamaremos parametro
As Range, que es la celda que se seleccionará para la cual queremos que se lleve acabo la traducción
y retornará
un valor de tipo String
Paraa la ejecución, Para la ejecución o creación de esta función necesitamos dos variables, la primera una de tipo entero, Dim, llamemola fin, As Integer, y una de tipo String, llamemola Resultado, As String
Entonces lo primero que debemos hacer es verificar ...
... Si el rango que selecciono el usuario, contiene una fórmulas
para eso utilizamos un control de flujo IF
el nombre de nustro parámetro que es parametro
utilizamos la propiedad HasFormula
Y listo.
aquí identificamos si la celda seleccionada por el usuario tiene una fórmula
a continuación a nuestra variable a nuestra variable de tipo entero fin le vamos a asignar el siguiente número
vamos a utilzar el objeto application, del objeto application vamos a utilizr la función SEARCH
que necesita
estos dos parámetros
ya explico esto en un segundo con más detalle
del objeto application utilizamos la función SEARCH, que es el equivalente de la función hallar de nustra hoja de cálculo, en excel, veamos en excel esta función rápidamente
la función hallar; entonces, igual, HALLAR
texto buscado
le proporcinamos un texto por ejemplo la letra n. Dentro del texto quiere decir la celda o el texto que queremos poner aquí
diagamos por ejemplo
la celda B2 que contiene la palabra Enero
cerramos paréntesis y pulsamos enter
y nos arroja el valor de dos
veamos por que es esto
vamos aquí a la celda
entonces ...
a la función HALLAR le pasamos como primer parámetro
la letra n
y le decimos que busque en este texto
y nos arroja como resultado el número dos, esto es porque la palabra n la encontró en la posición número dos
uno y dos
y es esto lo que hace la función HALLAR
volvamos a nuestro zoom normal
y volvemos al editor de visual basic
entonces que estamos haciendo aqui
como ...
como la propiedad fórmula
tiene el nombre completo de la fórmula incluso los paréntesis y las referencias a las celdas
no queremos que aparezcan esos parentésis ni esas referencias, pues lo único qu necesitamos es el nombre de la función
para eso entonces necistaos el número o la posición en donde se encuentra
el paréntesis de apertura
y parae ahí
ahora ...
... vamos a utilizar
nuestra variable Resultado
y vamos a utilizar la función MID
la función MID
extrae una sub cadena de una cadaena
empezando en cualquier posición
entonces aquí
a parametro como parámetro
punto formula que contien el nombre de la fórmula, recordemos con todo y paréntesis
y referencias a celdas
vamos a empezar en el dos
y vamos a terminar en
fin menos dos
veamos que es esto
entonces ...
de la cadena de caracteres
de formula
vamos a extraer desde la posición número dos y esto es para evitar el signo igual hasta la posición donde se encuentra el operador de paréntesis, la apertura de paréntesis, menos dos
veamos esto ...
aquí en la diapositiva para entenderlo mejor
el dos el principio es que empiece
después del igual
pues para no incluir este igual en nuestro resultado
desde esa posición empezara a contar nuevamente desde uno
como, con la función SARCH, nos dios el resultado seis, donde se encuentra el paréntesis para este caso en particular
se correria, hasta la letra a
situación que no queremos
entonces...
le restamso dos posiciones
la de esta posición y la posición del paréntesis
para que quede unicamente el nombre de la función
volvamos al editor de visual basic
para continuar con la escritura de nuestro código
en caso contrario, en caso de que
la celda seleccionada por el usuario no contenga una fórmula
vamos a retornar, es decir a TRADUCTOR
que recordemos, que TRADUCTOR
retorna una cadena de caracteres
vamos a retornar en la celda, no, no hay función
y aquí me falto
a traductor. TRA-DUC-TOR, asignarle resultado
y aquí tenemos
nuestro código de la función
vamos a probar si funciona
si realmente funciona
vamos a Excel
aquí en al celda D2 tenemos la función PRODUCTO
entonces, diagamos que en la celda F4 vamos a escribir nuestra nueva función, TRADUCTOR y le vamos a pasar la celda D2 a nuestra función PRODUCTO a nuestra función TRADUCTOR perdón
cerramos paréntesis y puslamos enter
Hmm
ha ocurrido algo
ha ocurrido algo porque si tiene una fórmula
volvamos al editor de visual basic
miremos a ver que sucede, a claro, aquí; aquí se encuentra el error parametro punto HasArrary
es incorrecto
queremos verificar si iene una fórmula
HasFormula
volvamos a excel
y vamos ejecutar nuestra función
y le pasamos la celda B2 que contiene la fórmula PRODUCTO, cerramos paréntesis pulsamos enter, y vemos como ahora si...
aparece el nombre en inglés de la función que contiene la celda D2
velvemos, por ejemplo ...
aquí la ceee, la celda C16 que contiene la función BUSCARV
igual
TRADUCTOR
le pasamos ...
la referencia a la celda C16, cerramos paréntesis pulsamos enter, y vemos como obtenemos el equivalente
en inglés de la función BUSCARV
aquí también tenemos la función K.ESMIO.MAYOR
verifiquemos también
cuál sería la traducción en ....
la traducción en inglés de dicha función
utilizamos nuestra, recien creada función traductor
le pasamos la referencia a la celda que contiene el nombre de la función
cerramos paréntesis pulsamos enter
y vemos la traducción que es LARGE, que fue con la situación que me econtré hace dos días
leyendo una entrada en el blog de Chandoo
Blog muy recomendado.
y es así como creamos esta nueva función, TRADUCTOR
recordemos si queremos que quede fija debemos guardar el archivo habilitado para macros
podemos verificar aca
en la pestaña formulas
en insertar función
en la parte
seleccionar una categoría
.. en ...
definidas por el usuario
nos vamos hasta el final
y vemos como aparece
la función TRADUCTOR
aunque no tiene ninguna ayuda
y no tiene ningún comentario
ya esta creada
y veremos en tutorial posterior como insertarle
como insertar los comentarios
a las funciones creadas por nosotros mismos
Buenos eso es todo, por este vídeo
Muchas gracias por ver el vídeo
si les gusta el vídeo ...
... clic manito arriba
y cualquier comentario, sugerencia
son bienvenidos
Gracias por ver este vídeo