Excel Macros :: La importancia de las Comparaciones.

Escribiendo algo de código en estos días recordé la importancia de la clausula Option Compare y me pareció pertinente escribir algo sobre ella; Option Compare es un indicador que va al comienzo del módulo en el cual estas escribiendo tu macro y le indica cómo se van a realizar las comparaciones, porque es importante esto?, muy simple => si estas comparando el valor de celdas, variables, valores de campos edit en formularios, etc.  es muy probable que compares textos que tienen diferencias entre mayúsculas y minúsculas pero que a la larga son iguales, por ejemplo:

Imagen1

Como puedes ver la función Verificar compara “Hola” con “hola” con el Option Compare desactivado y nos indica si son iguales o no (en el editor las líneas que comienzan una coma simple (‘) se toman como comentarios y no se ejecutan), tal como está la Macro nos indica (False), es decir que “Hola” y “hola” no son iguales, pero si quieres saltarte esa semántica tienes que indicarle al módulo la forma en la que compararás los valores, para ello utilizas el Option compare. Sigue leyendo

Excel Macros :: Necesitas Ejemplos ?

Si te has internado en el mundo de las macros para Excel o programación VBA  y estas en el punto en donde lo que necesitas son ejemplos que te ayuden a agudizar tus habilidades para manipular el modelo de objetos de Excel, crea que puedo ayudarte con dos descargas impresindibles para que lo logres:

1 .Manual de Visual Básic para Excel - de- José pedro garcía sabater. y

2. Código de Ejemplo – se desconoce el autor.

Bueno estos dos documentos son una primera muestra de la documentación que he recopilado a los largo de los años y que espero que te sea útil,

Saludos,

Macros (III) :: Introducción al objeto Range – Celdas

En la primera reseña sobre macros para Excel comentaba que el objeto más importante en la colección de objetos de Excel en es Range;  Range es el objeto central para la escritura del código de las Macros pues es el medio por el cual accedemos a las celdas de cada una de las hojas que componen el libro sobre el cual estamos trabajando, el objeto Range representa entre otros:

-          La selección actual.

-          Una celda en particular.

-          Varios rangos de celdas (“Áreas”).

-          Toda una Columna ó Toda una fila.

-          El mismo rango en diferentes hojas (“Rangos 3D”).

-          Etc.

Como puede deducirse del listado anterior el objeto rango tiene que ver con casi todo lo que hagamos en Excel, al fin de cuentas Excel es una hoja de cálculo y sus funcionalidades se centran la manipulación directa o indirecta de las celdas. Sigue leyendo

Tablas Dinámicas (II):: Tablas Dinámicas Simples

Muy bien en el primer post de tablas dinámicas nos centramos en entender el concepto como tal, ahora vamos a crear una serie de tablas dinámicas simples.

Antes de comenzar hay que hacer una claridad en cuanto a la versión de Office, las funcionalidades de las tablas dinámicas son ligeramente diferentes en Office 2007 a las de 2003, de hecho 2007 es más amigable a mi parecer y por ello me centraré en esta última versión.

Antes de comenzar, ya establecimos que hacen las tablas dinámicas ahora empezaremos por entender brevemente cómo lo hacen:

TDII 1

Sigue leyendo

Excel:: De números a letras

Han sido muchas las entradas que encuentro en algunos de los foros que he visto y siempre está la pregunta de alguien que tiene un formato en Excel de factura, pago, remisión, etc. que quiere que se rellene en determinada celda el equivalente en letras de un número particular, dado que es una necesidad bastante general expongo aquí el código fuente de una macro que hice hace un par de años para ello.

Para Comenzar a utilizarla:

Lo primero que tienes que hacer es descargarte este Documento, es un archivo en word (.docx) que contiene el código fuente del conjunto de funciones que componen la macro, utilizarla es bastante fácil:

1. En el libro en que te interesa tener la funcionalidad vas al editor de VBA (Alt + F11) e insertas un nuevo módulo (Menú insterar/Módulo), una vez estando allí copias todo el código fuente del archivo de Word en ese módulo, Ahora tienes el codigo fuente disponible en tu libro de Excel.

2. Para utilizar la función vas a la barra de fórmulas (fx) y dentro del grupo de funciones escoges “Definidas por el Usuario”, allí encontrarás la función Cifra”, la cual tiene dos argumentos: Valor y Denominación, en valor ira la cantidad que deseas que aparezca en letras y en denominación la unidad de medida, Así:

=Cifra(12569;”Pesos”)

Resultado:

“Doce Mil Quinientos Sesenta y Nueve Pesos”

Aclaraciones:

  1. En el argumento valor puedes introducir un valor como o tal, la referencia a una celda o una formula que devuelva un valor.
  2. Cuando construí el código le di un margen entre 1 y 999.999.999.999 así que no lee cifras por encima del Billón.
  3. Puedes integrar la función directamente a Excel para que este disponible en cualquier momento, grabándola como un complemento e instalándola.

Que te sea útil.

Macros (II):: Hola Mundo !!!

En este artículo comenzaré con la parte de programación de macros en Excel, para comenzar a testear casi cualquier lenguaje es utilizado el “Hola mundo”, de hecho algunos clasifican la accesibilidad de un entorno dependiendo de cuánto tiempo pasa entre que te metes en el entorno y logras que el programa ejecute un “hola mundo”, basicamente es que el aplicativo muestre una ventana, cadro de dialogo, pagina, etc con el texto “Hola Mundo”

El propósito de este artículo es mostrarte un camino para que inicies en la programación VBA en Excel, valga aclarar que muchos de los conocimientos de VBA son Visual Basic 6 General por lo que también te servirán para Ms Access, aunque por supuesto te antes de comenzar con Access te recomiendo que leas esto.

Bueno hagamos nuestro “Hola Mundo”: Sigue leyendo

Tablas Dinámicas (I):: Primero entiéndelas

Las tablas dinámicas son una de las herramientas más potentes y abstractas de Excel, pero esa abstracción es en buena medida la que termina siendo una barrera de entrada para muchas personas, así que dedicaré estas primeras líneas solo a tratar de mostrar que hace una tabla dinámica en esencia, pues una vez sabemos cómo trabajan y que necesitamos el resto es bastante simple.

De Subtotales a Tablas Dinámicas:

En uno de mis primeros artículos sobre Filtros avanzados tome como metodología partir de un problema que una herramienta simple no puede solucionar y que por ende tenemos que utilizar una herramienta más avanzada, así que comenzaré con un enfoque simple como los subtotales para llegar a las tablas dinámicas, tomaremosun ejemplo de una base de datos de Ventas:

PedidosAsí que tenemos esta base de datos pero queremos conocer los totales de unidades vendidas para cada estado, que hacemos? utilizamos Subtotales, lo primero que hacemos es ordenar nuestra lista por la columna estado aquí es donde la comprensión de la frase “Para cada cambio en” del cuadro de dialogo subtotales es vital –> lo que Excel te está diciendo es que el entenderá como de un mismo grupo la serie de filas en que el valor de la columna que indicas se repita consecutivamente, y sobre ese grupo es el que ralizará las operaciones. Sigue leyendo

Tratando Cadenas de Texto en Excel.

Uno de los trabajos más tediosos que se tienden a realizar en labores de oficina es la organización de información para formatear nombres, espaciado, extracción de fragmentos, separación de texto, etc.  En muchos casos estas labores se realizan manualmente por falta de conocimiento de las funciones de manipulación de texto de Excel y por ello enuncio las más prácticas e importantes en opinión:

Consideraciones:

  • Cadena de Texto: Es una forma genérica de referirse a una serie de caracteres unidos que pueden ir desde una letra hasta un párrafo completo.
  • Las funciones de cadena de texto siempre devuelven su resultado en forma de texto, aunque en el parámetro se les indique un número, esto es muy importante para funciones que de manera directa o indirecta comparan celdas, por ejemplo para la Función BuscarV es muy diferente “1234” y 1234.

Derecha (Cadena; # Caracteres), Lectura de la fórmula: (Muéstrame los n caracteres de Derecha a Izquierda (<– )  del texto que indico), Ejemplo:

= Derecha (“Pedro Pérez”; 4)  –> “érez”

Sigue leyendo

Las Macros (I): El Modelo de Objeto de Excel

Para comenzar a trabajar con las macros de Excel primero describiré brevemente como funcionan, esto es muy importante porque en algún punto se tienen que buscar elementos o depurar macros y es muy útil tener un contexto para solucionar esos problemas:

Las macros son escritas y ejecutadas utilizando VBA (Visual Basic for Applications):

VBA es una versión reducida Visual Basic (VB) que se encuentra incluida en todo el Office como una especie de submodulo (al cual se puede acceder fácilmente pulsado Alt +F11),  así cualquiera que sepa programar en VB puede transferir sus conocimientos para la manipulación de VBA o quienes aprendan VBA bien pueden trasladar su conocimiento para comenzar con VB.

VBA no tiene ningún vínculo en particular con Excel o con ninguna aplicación de Office, lo que ocurre es que Excel Expone sus objetos, propiedades y métodos (más adelante veremos que son) para que sean manipulados a través del código VBA, básicamente lo que sucede es que  Excel dice “Soy un auto, así que este es mi volante, pedales, caja de cambios y Medidores para que puedas operarme y yo haga lo que tú quieras”. Sigue leyendo