lunes, 10 de octubre de 2016

Conozcamos el método "EVALUATE" en Excel VBA

Evaluate Vs Application.WorksheetFunction

Siempre que trabajamos en el entorno VBA, por lo general nos vemos ante la necesidad de realizar ciertos cálculos, como por ejemplo, sumar un rango de celdas, pero con código de programación VBA; y con frecuencia, nos hemos auxiliado de la propiedad WorksheetFunction para invocar, en este caso, la función suma



Sin embargo, esa línea de código la podemos simplificar mediante el método Evaluate, lo que nos permite trabajar de una forma práctica, al momento de realizar ciertas tareas.


Observa en la siguiente imagen, cómo quedaría la línea de código, utilizando Evaluate y siempre obtendremos el mismo resultado en la celda A11.



También podemos destacar, que este método se puede simplificar aún más, con lo cual, estaríamos utilizando Evaluate de una forma tácita.

Observa cómo quedaría en la siguiente imagen y siempre lograremos el cálculo deseado, del rango establecido con Evaluate.



¿Cuál procedimiento te parece más sencillo? Con toda seguridad, yo sé que elegirías el procedimiento tres, ya que resulta aún más sencillo expresar lo que necesitas hacer.


Veamos algo diferente
A continuación, te muestro dos procedimientos que nos dan el mismo resultado, y es, aplicar el formato de negrita a la celda A1.

Voy a tratar de explicártelos, lo más cristalino posible :)



Como habrás notado, en ambos procedimientos estoy utilizando la variable boldCell para poder aplicar negrita a la celda A1, sin embargo, observa bien, y verás que ambas variables manejan tipos de datos diferentes.

En el procedimiento número uno, la variable boldCell está declarada del tipo String, ya que el formato largo del método Evaluate, permite utilizar variables que hagan mención del nombre del objeto en sí, en este caso, la celda "A1"; por lo que al momento de correr la rutina, es como si hubiéramos escrito el objeto, con su nombre específico.

Caso contrario, es el procedimiento número dos, ya que no permite utilizar variables que tengan el nombre del objeto asignado específicamente, por lo que tenemos que declararla del tipo Range, para referirnos a lo que contiene el objeto, en este caso la cadena de texto "Cadena de texto con formato Negrita"

Una vez que te hayas familiarizado con este método, creo que sentirás tedioso escribir esto: Range("A1").Select y preferirás escribirlo así: [A1].Select


Espero que este artículo te haya sido de utilidad, y si es así, compártelo con todos tus amigos en las diferente redes sociales.

Aquí te dejo el archivo con los ejemplos realizados para que lo descargues.


Saludos cordiales!




8 comentarios:

  1. Gracias por compartir, profesor. Pondré en práctica esta enseñanza

    ResponderEliminar
    Respuestas
    1. Muchas gracias por tu comentario.
      Tu valoración y apoyo son muy importantes.
      Saludos y un fuerte abrazo amigo mío.

      Eliminar
  2. Excelente explicación sobre el metodo "EVALUATE" .Muy agradecido por el conocimiento profesor Otto.Lo insto a que siga compartiendo y ejerciendo sus conocimientos con la comunidad de excel.

    Saludos cordiales

    ResponderEliminar
  3. Mil gracias profesor Otto, totalmente de acuerdo con el comentario de Piero Quinto.

    ResponderEliminar
  4. Sorprendente su trabajo, es grato contar con alguien con tan basto conocimiento pero sobre todo dispuesto compartirlo. Gracias

    ResponderEliminar
  5. Profe; gracias por compartir el conocimiento, tengo un archivo que me saca un reporte, pero quiero automatizarlo como el de recorriendo filas o aplicando la funcion evaluate de ser posible, como hago para contactarme con Ud. y recibir una asesoría, muchas gracias.

    ResponderEliminar
  6. Hola, excelente tutorial de como visualizar imagnes por valor de celdas, pero no he podido habilitar el worksheet para ingresar los codigos necesarios seguen el video... si a hay alguna forma de descargar este archivo, favor de facilitarlo... gracias.

    ResponderEliminar