Ir al contenido principal

Entradas

Mostrando las entradas de diciembre, 2011

Diseño de formularios en Excel

Los formularios son todas las interfaces posibles (ventanas) de un programa. La suma de muchos formularios con diferente funcionalidad es lo que conforman una aplicación o programa. Visto desde esta óptica cualquier aplicación instalada en nuestro computador es un formulario que hace parte de un programa. En el contexto de Microsoft Office cada aplicación(Word, Power Point, Excel) de la suite de oficina tiene formularios que nos ofrecen una funcionalidad con la que podemos interactuar mediante botones, cajas de texto, listas desplegables y muchas otras opciones.
Un ejemplo de formulario en Excel es "Formato de celdas" (Clic derecho sobre una o varias celdas), el cual nos ofrece la posibilidad de definir el tipo de datos, alineación, bordes, relleno y protección. No es comun que un usuario con conocimientos básicos de Excel inserte formularios, no así, aquellas personas con habilidades en macros.
Para iniciar su diseño, debemos traer a la memoria todo lo que sabemos sobre in…

Recursos para programar macros en Excel

Nadie nunca sabra lo suficiente para decir que no requiere de una buena guía o documento de apoyo al momento de desarrollar una macro. Pues este es mi caso, constantemente consulto recursos como páginas Web, libros y documentos de terceros. Para despedir este curso de Introducción a las Macros les comparto algunos de mis recursos que consulto (Muchos estan en Ingles, lo adverti, la mejor documentación esta en Ingles):
Páginas Web:

http://www.xltoday.net/
http://www.angelfire.com/biz7/julian_s/julian/julians_macros.htm
http://jmatos777.wordpress.com/excel/
http://office.microsoft.com/en-us/excel-help/overview-RZ102337714.aspx?section=1
http://www.mailxmail.com/curso-introduccion-macros-excel
http://officemacros.codeplex.com/
http://dmcritchie.mvps.org/excel/excel.htm
http://www.mundoexcel.com/
http://msdn.microsoft.com/es-es/library/ee814737.aspx
http://office.microsoft.com/es-es/excel-help/descripcion-general-RZ001150634.aspx?section=1
http://trucosdeexcel.com/
http://excelavanzado.com


Documento…

Estructuras repetitivas en Macros de Excel

Es comun en el trabajo con macros ejecutar una instrucción mas de una vez. Ejemplo se tienen 25.000 registros con nombre y apellido y se quieren seprar aquellos que empiezan con "Lo". La solución que aparece a nuestra vista es repetir la instrución tantas veces como se necesite. ¿No estamos locos?. Para repetir 25.000 veces la misma instrucción. Pues aqui es donde se requiere el uso de estructuras repetitivas que facilite repetir una misma instrucción tantas veces como sea necesario.
Para el presente post solo vamos a hablar de la estructura FOR ... NEXT. Su estructura de funcionamiento se muestra a continuación:
Dim contador as Integer  ' Creación de un contador que va incrementando con cada ejecución
contador = 1
For contador To 25.000     ' Repita las instrucciones desde el valor del contador hasta 25000
       Instrucción a repetir 25000 veces
Next contador      ' Incremente el contador


Algunos ejemplos practicos

Ejemplo 1

Llenar un rango de 19 celdas con v…

Ejercicio Condicionales usando Macros en Excel

La toma de decisiones es determinante en la secuencia de ejecución de una macro. Las herramientas que proporciona VBA para la toma de decisiones descansan en los condicionales. Un ejemplo de estructuras condicionales en Excel es la función "SI", la cual permite hacer una prueba lógica y tomar generar dos resultados posibles dependiendo si la prueba lógica es verdadera o falsa. "SI su estatura en metros es superior a 1.5 mts, puede ingresar a la montaña rusa, de lo contrario NO". En la afirmación anterior solo aquellos niños con una estatura superior a 1.5 tendrán acceso al juego mecánico, los demás niños simplemente estarán excluidos del juego hasta que cumplan el requisito de forma imperativa.
El lenguaje de macros permite 3 estructuras condicionales distintas:
a) IIF(prueba_lógica, verdadero, falso). Su resultado obligatoriamente debe asignarse a una variable
variable = IFF(3>1, "Verdadero", "Falso"). El tipo de variable puede ser numero, …

Formulas definidas por el usuario (UDF) - Macros en Excel

Las formulas o funciones de Excel  son el recurso principal para quienes su trabajo gira alrededor de una hoja de calculo, es por esto que cuando se habla de macros es imposible dejar de mencionarlas. Pero ¿Cuál es la diferencia entre una macro corriente y una formula?

La macro corriente se ejecuta a partir de una acción como un clic luego que es asignada a un boton, gráfico o simplemente desde el visor de macros usando la acción "Ejecutar".

Las formulas por el contrario inician con el simbolo "=" o "+" y las inserta el usuario en el momento que la requiere y la celda apropiada (Nada nuevo). La ventaja es que usando VBA puedo crear formulas propias de modo que simplemente usen los argumentos de mi interes.

Un pequeño ejemplo para aclarar:

Crear una función que convierta de grados Celsius a Farenheit. Esta formula no esta creada por defecto, en su remplazo hay otra que es convertir y que además de convertir grados tiene otras utilidades. Si lo que me inter…

Ejercicios de practica del modelo de objetos de VBA

1. Desarrolle una macro que cree un libro. Una vez creado el libro genere numeros aleatorios en el rango A1-F10. Luego seleccione el rango, haga una copia en 3 hojas del libro. Por último guarde el libro en la carpeta de documentos del computador.

2.  Utilice las funciones Inputbox y Msgbox para solicitar al usuario que digite 2 numeros y luego realice la suma de los numeros y muestrela mediante la función Msbox.

Utilice la ayuda del explorador de objetos para utilizar Inputbox y Msgbox.



Solución a los ejercicios - Actualización 6 de diciembre 2011

Ejercicio 1
**************************************

Sub ejercicio()
'Desarrollada por Juan David Cabrera Cardona

Workbooks.Add
Range("A1:F10").FormulaR1C1 = "=RANDBETWEEN(0,150)"
Range("A1:F10").Copy
Sheets("Hoja2").Paste
Sheets("Hoja3").Paste

'La ruta de la linea siguiente puede ser remplazada por una ruta valida en su computador
ActiveWorkbook.SaveAs Filename:="C:\Users\SALA4\D…

Variables y Tipos de datos - Macros en Excel

Las variables son útilies en la creación de Macros. Son de nuestro especial interés cuando deseamos desarrollar formulas personalizadas (User Defined Formulas). Para introducirnos en el tema de la creación de formulas, necesitamos reconocer los tipos de datos existentes y tener la capacidad de utilizarlos. A continuación se presenta una tabla con los tipos de datos y la capacidad de almacenamiento según el tipo.


Cada de uno de estos tipos de datos deben usarse en concordancia con el objetivo de la macro. El siguiente ejercicio muestra el uso de variables tipo entero (integer):

Entrar una cantidad que representa el precio de algo por el teclado con la instrucción InputBox y
guardarlo en la celda A1 de la hoja activa. Si el valor entrado desde el teclado (y guardado en A1) es superior a 1000, pedir descuento con otro InputBox y guardarlo en la casilla A2 de la hoja activa.
Calcular en A3, el precio de A1 menos el descuento de A2.

Sub variables1()
Dim Precio As Integer     'Variables ti…

Seleccionando celdas a través del objeto Range de VBA en Excel

Formas de seleccionar celdas con Range:

Una celda sóla:
Range("A1").Select

Un conjunto de celdas contiguas dentro de la misma hoja:
Range("A1:G5").Select

Para seleccionar celdas no contiguas:
Range("A1,A5,B4").Select

Para seleccionar celdas no contiguas mas un conjunto contiguo:
Range("A1,A5,B4:B8").Select

Para seleccionar la columna D
Range("D:D")

Para seleccionar la fila uno
Range("5:5")

Para seleccionar las columnas de la A a la C
Range("A:C")

Para seleccionar filas de la uno a la cinco
Range("1:5")

Para seleccionar las filas uno, tres y ocho
Range("1:1,3:3,8:8")

Para seleccionar las columnas A, C y F
Range("A:A,C:C,F:F")

Algunos ejemplos son tomados de http://cursovisualexcel.wordpress.com

Ejercicio Selección

Ejercicios Color

Modelo de Objetos de VBA (Visual Basic) - Aplicado en Excel

La gráfica a continuación explica el modelo de objetos usados por Visual Basic (VBA) en el desarrollo de macros en Excel.


Gráfica tomada de Excellentias.com
Para nuestro caso el termino "Application" hace referencia a Excel sin embargo como lo mencionamos en antiguos post, las macros funcionan en todo el contexto de Microsoft Office (Word, Access, Power Point, etc...) El modelo de objetos nos facilita hacer referencia a los componentes globales dentro de Excel, Eje. Libros, Hojas y Celdas (Rangos). El modelo tiene especial utilidad cuando en una macro se integran varias hojas o incluso diferentes libros o archivos de Excel. A continuación les dejo un enlace a un artículo con información detallada de cada una de las partes de modelo. Artículo Recomendado A modo de conclusión; es recomendable entender que el modelo de objetos de Excel resulta ser la clave para facilitar el desarrollo de macros en Excel.

Referencias Absolutas y Relativas

Hemos usado referencias absolutas y relativas en la mayoría de nuestras hojas de calculo, sin embargo siempre existe la duda de cuales son las relativas y cuales las absolutas. Para salir de la duda les dejo la siguiente presentación que lo explica en detalle.
Referencias Absolutas y relativas



Una vez que tenemos claro los conceptos, los debemos extrapolar a las macros y ver que su funcionamiento afecta significativamente su desarrollo.

Para evitar una expliación muy teórica les propongo desarrollar dos ejercicios y una vez completados responder a la pregunta. ¿Cual es la diferencia entre referencias Relativas y Absolutas dentro del contexto de el desarrollo de Macros?

Ejercicio1

Ejercicio2

Quedan abiertos los comentarios para resolver dudas o inconvenientes.