Professional Documents
Culture Documents
Ahora si nosotros hacemos clic con el botón derecho en el nombre del formulario y
vemos también la barra de título veremos lo siguiente:
Ejemplos.xlsm – Frm_Ejemplos (Código)
Todo lo que programemos aquí, solo será efectivo para nuestro formulario llamado
Frm_ejemplos.
Más adelante lo veremos con más detalle.
Ahora vamos a comenzar a programar en el módulo 1.
Todos los procedimientos que escribamos serán públicos y comenzarán por “Public
Sub” o simplemente “Sub” y el nombre del procedimiento, y finalizarán con “End Sub”.
Además todas y cada una de las cláusulas que se abran, deberán finalizarse.
Con esto terminamos una muy pequeña introducción a las macros en el Excel. El el
siguiente post veremos ejemplos de macros en el propio Excel con los comentarios
correspondientes para su mejor comprension.
Comenzamos con los ejemplos de nuestras macros en excel. Estos ejemplos nos
serviran para comprender la posterior publicación de la creación de un programa de
gestión en excel.
Ejemplo 1
Por otro lado en la siguiente imagen veremos como crear nuestra primera macro
publica, la cual llamaremos en las siguientes macros que programemos, justo antes de
empezar a programarlas. Esto nos servira para acelerar la ejecución de cada una de las
macros que vayamos haciendo.
Despues de programar esta macro, crearemos otra identica que llamaremos
Finalizar_Macro y que se diferenciará de la anterior en que tendrá todos los parametros
del objeto application en True para poder mostrar los resultados.
Teniendo en cuenta esto, nuestras dos primeras macros quedarían de la suignete manera.
En este post vamos a continuar viendo ejemplos de macros y en este caso veremos lo
que yo llamo, Msgbox variables.
Estos Msgbox, son cuadros de mensaje personalizados al igual que los mencionados en
el post anterior, la unica diferencia con los anteriores es que, si en los anteriores
mostrabamos un mensaje literal escrito por nosotros en este, vamos a sacar por pantalla
un dato contenido o bien en una variable o bien en un cuadro de texto.
Las variables tipo string pueden contener datos tanto numéricos, como alfanuméricos.
Veamos un ejemplo.
En este caso declaramos la variable mensaje, la cual estará solo disponible para ese
evento concreto del botón pero no lo estarán para el resto de botones ni de eventos.
Esta macro la crearemos en un modulo. Recordar que para que funcione debemos llamar
al procedimiento desde el botón desde el cual queremos que ejecute esta acción.
Una vez guardado el libro en la carpeta tutor, el libro quedará abierto.
Para cerrarlo simplemente debemos añadir la siguiente instrucción despues de guardarlo
ActiveWorkbooks.Close
En este post vamos a hablar un momento de las macros en excel. Recordar que las
macros se pueden realizar a traves de VBA como veremos a lo largo del curso o bien
con la grabadora de macros.
En ambos casos, todo se traduce a lenguaje visual basic.
Si os fijais, lo primero que hacemos es guardar el libro habilitado para macros y partir
de ahi comenzamos a grabar o programar nuestras macros.
Como digo las macros van a estar programadas por nosotros, asi que, no hay peligro de
infecciones ni cosas raras.
0
Veamos como abrir libros de excel a través de macros comprobando antes si el archivo
existe o no para poder validar posibles errores.
Cuando nosotros realizamos la comprobación de si existe el archivo, si realmente existe
lo va a abrir, nos ha faltado un pequeño detalle, justo antes de realizar la apertura del
libro, agregaremos esta instrucción:
Es decir, si hay errores que continúe.si el archivo ya esta abierto que continue en este
caso.
Nos vemos en el siguiente post
Macros desde cero. Post 7. Creación del
libro clientes.
Ciencia y Educación | Hace más de 11 meses
0
0
Bueno gente empezamos ahora un poco más en serío con las macros en excel creando
un primer libro para ir almacenando los clientes de nuestro negocio.
Primero crearemos una carpeta llamada plantillas y ahi crearemos una plantilla para
almacenar nuestros clientes.
Ahora crearemos en el modulo 2 un procedimiento que creará un libro llamado plantilla
de clientes.xlsx con los respectivos titulos de los campos, y lo guardará en la carpeta
plantillas.
Una vez terminamos de programar el procedimiento, lo llamamos desde el botón que
queramos que ejecute la acción en su evento clic como en la siguiente imagen.
Si ahora nos vamos a la carpeta donde se nos guardo el archivo nuevo de excel y lo
abrimos, veremos algo como esto.
Nos vemos en el siguiente post.
Por otro lado el Caption del formulario todavia no lo hemos cambiado. Cuando
terminemos de crear todas las plantillas, entonces lo cambiaremos.
En este post os dejaré la programación que utilizaremos para crear nuestrá plantilla de
clientes.
Haciendo clic en el boton cmb_crear_plantilla_clientes, programaremos lo siguiente.
Un saludo y nos vemos en el siguiente.
Saludos.
0
En este post veremos como programar el formulario de clientes. Recordar que cuando
empezamos, al activar el formulario habiamos desactivado todos los textbox excepto el
del NIF y todos los botones excepto el de cancelar.
Primero vamos a crear una carpeta llamada Imagenes Clientes dentro del directorio raiz
de nuestra apliacion, es decir en la carpeta donde tenemos el archivo de macros.
Acto seguido veremos como nos queda el formulario de creación de plantillas y nos
centraremos en el botón para crear nuestro libro declientes.
Haciendo doble clic en el boton de crear plantilla de cleintes, nos saltará el evento clic
del botón en cuestión, donde programaremos lo siguiente.
En el evento clic de este botón hay varios llamados a procedimientos programados en
otros modulos y una variable a la que se le asigna una ruta.
Ahora vamos a ver la programación del procedimiento que utilizamos para crear el libro
que vamos a llamar Plantilla de Clientes.xlsx
Bueno chicos ya estamos casi casi acabando, vamos ahora a ver como nos queda el
formulario de clientes que vamos a utilizar para introducir los datos en la plantilla
creada anteriormente.
Describamos un poco estos textbox:
Todos ellos excepto el correo electrónico, admitiran solo mayúsculas y por otro lado
describamoslos según sus nombres:
Txt_Nif: Texto.
Txt_Nombre: Texto
Txt_Direccion: Texto
Txt_cp: Este solo admite números será el código postal
Txt_poblacion: Texto
txt_provincia: Texto
txt_email: Texto solo minusculas
Txt_telefono: Solo admite números.
Txt_Fax: Solo admite números.
Txt_Observaciones: Textbox sin restricción podemos escribir cualquier valor y además
puede ser en mayusculas o minúsculas. Este textbox Tiene la propiedad Multiline en
True.
Vamos a Ver ahora las variables y procedimientos que se van a utilizar en nuestro
formulario.
Vamos ahora con los procedimientos que llamaremos desde el codigo de nuestro
formulario cuando sea necesario:
Muy bien, en esta ultima imagen vemos un procedimiento que vacia todas las variables
excepto la del Codigo_postal que toma el valor cero ya que está es un variable numérica
y no puede tomar el valor de cadena vacia.
Bien si hemos llegado hasta aquí, tendremos un formulario con todos lostexbox
desactivamos excepto el textbox del NIF y con todos los botones desactivados excepto
el de cancelar.
Justo despues del loop y a continuación de pasar los datos de las celdas a los botones y
justo antes de activar los botones, vamos a llamar al procedimiento para cargar la foto
de nuestro cliente. Eso lo haremos de esta manera:
Call Cargar_Imagen_Clientes. Este procedimiento no aparece en la siguiente imagen
Bien, veamos ahora la programación de los eventos change de cada uno de los textbox
de nuestro formulario de clientes y el evento Activate del formulario.
Bien ahora ya estamos acabando. Vamos a ver por fín la programación de cada uno de
los botones de dar de alta, dar de baja, modificar, guardar y cancelar.
Recordar que el botón de facturar, vamos a programarlo más adelante.
Comenzamos:
Botón guardar:
Boton Cancelar:
En el evento keydown del Txt_Nif, nos vamos a ir a la parte donde hemos programado
entre el Do y el Loop y vamos a modificarlo justo donde se encuentra el msgbox de la
pregunta de si queremos agregar un cliente ahora y dejamos la programación tal cual
está la parte azul.
En este mismo evento, nos situaremos justo despues del end select, y añadiremos las
lineas que se encuentran coloreadas de azul.
Esta ultima imagen con ese elseif, consegimos que, si nosotros pulsamos escape y la
tecla de retroceso, la de borrado, se borra el nif completo de forma que así se restablece
el formulario al estado inicial.
Para ello en el mismo evento keydown del Txt_Nif, cuando abrimos el archivo y
activamos la hoja de listado de clientes, vamos a añadir una linea en la que asignamos a
la variable Ultimo_Dato el número de la ultima fila que contiene datos, es decir el
número de la ultima fila que esta ocupada. Añadiremos la linea que esta marcada en
azul.
Muy bien una vez hecho esto, bajamos un poco y volvemos a la programación que
tenemos entre el Do y el Loop.
Aquí vamos a cambiar la condicional, en lugar de decirle que si encuentra una fila
vacia, pregunte si queremos agregar un cliente, vamos a decirle...
Esto lo hacemos porque nostros vamos a buscar en toda la lista y quiza puede llegar un
momento que por algun motivo, haya filas vacias por el medio de la lista por lo que
entonces no buscaria en toda la lista, solo buscaria hasta que encuentra una fila vacia.
Vamos a ver entonces como quedaría esa linea del If, la cual esta remarcada en azul.
Bien amigos, con estas modificaciones, hemos finalizardo nuestro formulario de
clientes.
Nos falta como podeis comprobar el Boton de facturar, el cual programaremos más
adelante.
Por el momento, nos veremos entonces en el siguiente post.
P.D. Adelantaros que se está preparando una guía totalmente completa y en español
donde podreis leer con más detalle y mas profundamente todo lo que estamos
publicando en estos post de manera general.
Con la primera estructura, evaluaremos una condición dada. If.. Else..... End If
Lo primero que debemos de tener en cuenta es que todas las estructuras que se abren,
deben ser cerradas, esto quiere decir que si comenzamos a evaluar algo comenzaremos
con If o con Select Case y entonces una vez evaluadas las condiciones, el if o select case
que estamos utilizando, debe ser cerrado con End If o con End Select, dependiendo del
caso.
En la segunda estructura Select Case, lo que hacemos es evaluar los valores o lo que
puede suceder con un control u objeto determinado
Case ......
- Hacemos unas cosas
Case......
- Hacemos Otras cosas
Case........
- Hacemos otras cosas diferentes
Case Else ..... En caso que no se cumpla ninguno de los anteriores....
- Si no se cumplen los casos hacemos lo que queramos
End Select Cerramos la escructura.
En este segundo post, aprovecharemos la ocasión para ver las estructuras condicionales
en visual basic apra aplicaciones.
En este caso y aprovechando la ocasión, veremos dos tipo de estructuras.
Lo primero que debemos de tener en cuenta es que todas las estructuras que se abren,
deben ser cerradas, esto quiere decir que si comenzamos a evaluar algo comenzaremos
con If o con Select Case y entonces una vez evaluadas las condiciones, el if o select case
que estamos utilizando, debe ser cerrado con End If o con End Select, dependiendo del
caso.
En la segunda estructura Select Case, lo que hacemos es evaluar los valores o lo que
puede suceder con un control u objeto determinado
Case ......
- Hacemos unas cosas
Case......
- Hacemos Otras cosas
Case........
- Hacemos otras cosas diferentes
Case Else ..... En caso que no se cumpla ninguno de los anteriores....
- Si no se cumplen los casos hacemos lo que queramos
End Select Cerramos la escructura.
Veamos algunos ejemplos:
Muy bien, una vez tenemos ya creado el boton para crear la plantilla de clientes.
Nos iremos al formulario y seleccionaremos el botón.
Lo copiamos y lo pegamos. Una vez hecho esto, le cambiaremos el Caption y el
Name.
Acto seguido en el modulo donde habiamos creado el procedimiento para crear los
clientes,, justo debajo del End Sub, crearemos un nuevo procedimiento para crear
la plantilla de productos.
Veamos como quedaria
0
En este tercer post veremos los tipos de msgbox que podemos introducir en nuestra
programación a la hora de que el usuario que utiliza nuestra aplicación reciba un
mensaje.
Mensajes de Información: Son aquellos que muestran información sobre alguna cosa.
Se caracterizan por tener: Un título, un mensaje y un botón para cerrar el mensaje,
generalmente "Aceptar" o "OK". Su tipo de mensaje será vbInformation
Mensajes críticos o de error: Tienen las mismas caracteristicas que los anteriores y suele
utilizarse para mostrar mensajes de error al usuario. Su tipo de mensaje será vbCritical.