VBA/Excel y el futuro en el procesamiento de datos

Estándar

En el año 2006 empecé a estudiar VBA/Excel dado que me di cuenta que era una herramienta que facilitaba mi trabajo diario en el área de crédito y cobranza en el área de autoservicios. Inicialmente yo había aprendido a programar en lenguaje C a los 16 años por lo cual llegue a crear para mi trabajo unos sencillos programas que leían un archivo de texto que contenía números de facturas y que eliminaban todo aquello que no fuera un número, muy rudimentario pero funcionaba. Aun no sabía nada sobre las formulas y macros en Excel (ya que me hubiera llevado menos tiempo), tampoco profundice mucho en C pero gracias a su estudio desarrolle lógica. Lo que me atrajo de VBA/Excel fue el poder crear interfaces graficas las cuales llaman la atención del usuario y facilitan la selección de opciones para llevar a cabo un proceso.

No me avergüenza confesar que yo era de aquellos que decían que VB no era para auténticos programadores, pero… esa idea cambio! VB es mejor que C en ciertos ámbitos y C es mejor que VB en otros. Sin duda alguna para el ámbito administrativo en el que me desenvolví, VBA/Excel fue la mejor herramienta por que disponía de un gran conjunto de opciones. Pero… cometí el error de pensar que VBA/Excel es la solución a todo! VBA/Excel es una excelente herramienta con la cual podemos procesar cantidades de datos, crear gráficos y muchas cosas más… su versatilidad le hace popular, eso sin comentar que es relativamente fácil de aprender y hay gran documentación al respecto, pero un buen programador no debe conformarse con saber una sola herramienta!

Hoy en día hay gran cantidad de información inundándonos por todas partes, ya no solo se trata solo de leer y procesar archivos de texto plano, hojas de cálculo o conectarse a bases de datos, ahora hay que lidiar con la famosa nube. Ah! y llegaron los dispositivos móviles (teléfonos inteligentes, tabletas), donde ahí VBA/Excel tiene la batalla perdida sin duda alguna, pero en cuanto a la nube algo se puede hacer, más bien mucho! La nube trae consigo nuevas posibilidades para el aprendizaje de nuevas tecnologías o en su defecto para aquellos que no quieren dejar Excel, llevar a VBA/Excel más allá del límite, pero teniendo siempre en cuenta que no siempre será la mejor opción en algunos casos. Para ello necesitaremos saber emplear las herramientas que siempre han estado con nosotros y saber decidir en qué momento emplear determinada herramienta.

Las aplicaciones web están o han dominado sobre las aplicaciones de escritorio, cualquier programador ha escuchado sobre el uso de API’s y servicios web, pero como sacarles ventaja desde VBA/Excel. Si queremos que incursionar con VBA/Excel en el mundo web sin duda alguna tendremos que meter las manos a la grasa (como decía un profesor) y empaparnos de términos ligados a dicho ámbito, ampliar nuestros horizontes, porque si no lo hacemos estaremos tratando de resolver los nuevos problemas con las mismas herramientas del pasado.

Sin duda alguna me he embarcado algo tarde en esta aventura, pero con las nuevas herramientas y metodologías, será relativamente fácil llevar a VBA/Excel a otro nivel.

Anuncios

clsString – Clase en VBA/Excel para la gestión de cadenas de caracteres

Estándar

Un secreto importante de los programadores de éxito es que nunca pierden tiempo escribiendo el mismo código dos veces. Tienen pequeñas o incluso grandes partes de código que utilizan una y otra vez. Es por ello que desarrolle una clase que me brindara todas las funciones que utilizo en la mayor parte de mis desarrollos de software,  una clase para el manejo y gestión de cadenas en VBA/Excel. Esta nueva clase viene a sustituir a la que habia desarrollado previamente en este post.

Hace unas semanas decidí rediseñar nuevamente dicha clase a la cual nombre como clsString y que está totalmente inspirada en el en el objeto String que proporciona el lenguaje de programación Ruby. Continuar leyendo

Las 10 funciones de texto más esenciales

Estándar

Uno de los puntos fuertes de Excel es que incluye una cantidad de funciones prefabricadas que nos ahorraran gran cantidad de tiempo y esfuerzo en la realización de cálculos y operaciones. Excel incluye más de 300 funciones (estadísticas, financieras, lógicas, ingeniería, texto, etc).

Hoy quiero centrarme en aquellas para el procesamiento de texto (sobre todo aquellas que me han sido de mayor utilidad).

  1. REPETIR.             Devuelve un texto un número determinado de veces
  2. NOMPROPIO    Devuelve la primera letra de cada palabra en mayúscula y el resto en minúscula
  3. MINUSC              Devuelve todo el texto en minúsculas
  4. MAYUS                 Devuelve todo el texto en mayúsculas
  5. LARGO                 Devuelve la cantidad de caracteres que conforman una cadena de texto (incluyendo espacios)
  6. IZQUIERDA         Devuelve un numero especificado de caracteres, empezando desde la izquierda
  7. DERECHA            Devuelve un numero especificado de caracteres, empezando desde la derecha
  8. CONCATENAR    Devuelve la combinación de cadenas de caracteres
  9. ESPACIOS            Devuelve una cadena, eliminando los espacios iniciales y finales de una cadena de caracteres
  10. HALLAR               Devuelve el número de caracteres en el cual se encuentra una cadena (leyendo de izquierda a derecha)

Repito… estas no son todas las funciones de texto, pero si las que me han sido de mayor utilidad para resolver problemas reales y más  aún cuando he trabajo en conjunto con ellas.

Dejo aquí un breve archivo con algunos sobre su uso y funcionamiento:  ejemplos de funciones de texto

Creación y uso de Listas en VBA/Excel

Estándar

Para todos aquellos que han programado en Python, sabrán la gran ventaja que se obtiene al utilizar Listas o quizás para aquellos que han probado Ruby y han utilizado Arrays, ambos… Listas y Arrays son lo mismo. Son colecciones ordenadas de elementos a las cuales se accede a través de un índice y con dichos objetos la programación se simplifica enormemente, ya que poseen métodos y propiedades que facilitan la labor del programador. Desgraciadamente para todos aquellos que programamos en VBA/Excel tendremos que conformarnos al usar simples matrices las cuales nos brindan pocas posibilidades al respecto, ya que las mismas no son objetos.

Mi fascinación respecto a estos objetos, me llevo a la tarea de tratar de emularlos en VBA/Excel con la creación de una clase llamada clsList la cual incorpora algunos elementos Python y otros de Ruby.

Espero que esta clase sea de gran utilidad para todos aquellos programadores de VBA/Excel que están en busca de herramientas que faciliten su labor diario y al mismo tiempo recibir comentarios y sugerencias para ampliar y mejorar la clase.

Comparto con ustedes el siguiente enlace, donde podrán descargar el módulo de clase y un libro con ejemplos sobre el funcionamiento de la misma.

Clase Lista