Mostrando entradas con la etiqueta macro. Mostrar todas las entradas
Mostrando entradas con la etiqueta macro. Mostrar todas las entradas

martes, 5 de abril de 2016

MACRO PARA INSERTAR REGISTROS EN SQL SERVER DESDE EXCEL

Hoy les traigo una macro que como lo dice el titulo nos permitirá insertar registros en sql server.

Tengo una base de datos a la cual llame escuela en la que una de sus tablas contiene la información de los estudiantes: código, nombre, primer apellido, segundo apellido, sexo , edad


En este momento la tabla estudiantes esta vacía:


Nos daremos a la tarea de crear una macro en vba Excel que nos permite insertar registros en esta tabla.
Pero para poder agregar registros a la tabla obviamente primero debemos conectarnos a sql server con dicho fin escribimos la siguiente rutina:


En una entrada anterior de este mismo blog te explico el funcionamiento de esta rutina la cual queremos que se ejecute cada vez que abran el libro de Excel, para que sea así  he creado una rutina más:


La rutina iniciar invoca a la de conexión pasándole como parámetro el nombre del servidor y de la base de datos, esta información se encuentra dentro de la misma hoja de calculo:


En nuestro IDE de VBA hacemos clic en la sección  ThisWorkBook


Y agregamos el siguiente código:


De ahora en adelante cada vez que abramos este libro se ejecutara la macro de forma automática.
Ahora que ya podemos conectarnos a sql server, creamos un formulario para pedir al usuario de nuestra macro la información de los estudiantes que se desea agregar a la base de datos


Como puedes ver este formulario cuenta con un campo para la edad, llenaremos este campo con los números entre 1 y 100, para esto usamos la siguiente rutina:


Para que la rutina anterior se ejecute cada vez que se active el formulario la invocamos desde el método Activate del formulario.


Cada vez que nuestro usuario haga clic en el botón guardar la macro validara que toda la información esta diligenciada, para eso usamos el siguiente código:



Como ya indicamos esta rutina será invocada desde el botón Guardar con el siguiente código:


La rutina validar_formulario es invocada pasándole como parámetro el formulario y el número 0, esta rutina validara cada campo del formulario y si encuentra alguno vació le asignara un uno al parámetro recibido como código de error, además mostrara un mensaje en pantalla.

Para ejemplificarlo ejecutamos la macro:


Si hacemos clic en el botón Guardar se genera el siguiente mensaje:



Cuando todas las validaciones son superadas se invoca la rutina que inserta los registros en la tabla de base de datos, la invocamos de la siguiente forma:

Tendremos que utilizar funciones de conversión en VBA para pasar los parámetros de acuerdo al tipo de datos que recibe la rutina insertar registros, usamos la función Clng para convertir el código del estudiante de tipo texto a un entero largo, usamos la función Cint para convertir la edad del estudiante de tipo texto a entero.

Veamos la rutina que inserta los registros en la base de datos:


Esta rutina ejecuta una sencilla instrucción insert  sobre nuestra base de datos.

Ahora agregaremos un registro a la base de datos usando nuestra macro.


Finalmente hacemos clic en el botón Guardar.


Podemos ver que el registro quedo almacenado en la base de datos:

Espero que esta información te sea útil, si quieres automatizar tus procesos con VBA escríbenos a macrosymacros@gmail.com. En nuestro ebook encontraras una colección de macros completas ya terminadas encuéntralo aquí.

Puedes descargar el documento excel con la macro siguiendo este enlace.

Si necesitas automatizar tus procesos en excel escríbeme a macrosymacros1@gmail.com.

Para aprender mas sobre VBA sigue nuestro curso online.

El curso consta de 7 horas y 28 lecciones en vídeo. Aprenderás a ahorrar tiempo en excel , al automatizar tu trabajo mediante macros evitando perdida de tiempo en tareas repetitivas. Aprenderás desde cero a programar en VBA.

Para mayor información sobre el curso de Excel online haga clic aquí.







sábado, 12 de septiembre de 2015

MACRO PARA BLOQUEAR UN RANGO DE CELDAS EN EXCEL

Este es un código muy sencillo pero a la vez muy útil pues nos permite bloquear la celda o el rango de celdas que necesitemos en una hoja de cálculo. En esta ocasión utilice un formulario en el cual el usuario de la macro indica cuales celdas quiere bloquear.

Voy a mostrar paso a paso como construí la macro:


         Diseñamos nuestro formulario. Para esto insertamos un USERFORM en nuestra macro



Modificamos la propiedad caption de nuestro formulario


Agregamos dos controles label al formulario y para cada control label un control textbox


Finalmente agregamos un botón que nos permitirá accionar la protección del rango de celdas seleccionadas


 Agregamos el siguiente código a el botón (proteger Celdas) de nuestro formulario.

Este código realiza dos cosas:

1. Define una variable que guarda el rango que se desea proteger.
2.  Invoca una rutina que protege las celdas seleccionadas pasando como parámetro el rango y una referencia de nuestro formulario.

         Rutina que protege las celdas. 


Esta rutina hace lo siguiente:

a.       Recibe como parámetro el rango a proteger y el formulario definido inicialmente.
b.      Define una variable que representa la hoja de cálculo.
c.       Asigna la hoja de cálculo a la variable que representa la misma.
d.      Desprotege la hoja de calculo
e.      Desbloquea todas las celdas de la hoja de calculo
f.        Bloquea las celdas que comprenden el rango definido por el usuario
g.       Protege la hoja de calculo
h.      Oculta el formulario.


Ahora ejecutamos nuestra macro. Seleccionamos el rango A1:B1 y  Hacemos clic en proteger celdas



Si intentamos escribir la celda A1 o B1 Excel muestra el siguiente mensaje


Aprenda Excel  desde cero con nuestro curso online, el curso de Excel se encuentra dividido en tres niveles:

Nivel Básico: Diseñado para las personas que no tienen ningún conocimiento en Excel aprenderá a crear planillas formulas gráficos.

Nivel Intermedio: Diseñado para aquellos que tienen los conocimientos básicos de Excel, entre otras cosas aprenderá  a crear semáforos, tableros comandos, tableros de función etc.

Nivel avanzado: aprenderá funciones muy poderosas de Excel que lo impulsaran en su vida laboral, tablas dinámicas, solver , buscar objetivos.

Los beneficios que obtendrá con respecto a un curso presencial de excel son varios:

El curso está disponible las 24 horas, podrá ingresar a la hora que quiera es decir no estará limitado por horarios.

Se inscribe en el curso una vez y estará disponible para usted  de por vida.

No hay mensualidades, paga una  vez y tiene acceso al curso de por vida además de manuales y libros de Excel.

Para mayor información sobre el curso de Excel online haga clic aquí.

En mi ebook Macrosymacros encontraras una colección de macros, que te serán muy útiles  en tus procesos de automatización de hojas de calculo, puedes encontrarlo aquí.

Si necesitas automatizar tus procesos en excel escríbeme a macrosymacros1@gmail.com.