Mostrando entradas con la etiqueta Excel. Mostrar todas las entradas
Mostrando entradas con la etiqueta Excel. 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í.







lunes, 21 de marzo de 2016

COMO ABRIR UNA BASE DE DATOS SQL SERVER DESDE EXCEL CON MACROS VBA

SQL server es uno de los administradores de base de datos mas usados y VBA  nos permite abrir una base de datos en sql server desde Excel utilizando macros, esto puede hacerse también de forma dinámica con las herramientas que brinda Excel, como te lo enseñamos en nuestro curso online.

Previamente define una base de datos llamada escuela:


Antes de empezar a escribir la macro debemos tener las siguientes referencias seleccionadas:


Ahora podemos empezar a escribir código,Para conectarnos a  sql server usaremos el modelo de datos ADODB en la definición de las variables, como se muestra a continuación hemos definidos las variables globales:


Después escribimos la siguiente rutina, para conectarnos a la base de datos:


Previamente se definió un formulario que invoca la rutina anterior con los parámetros necesarios, dependiendo como queremos autenticarnos.


El botón aceptar de este formulario tiene el siguiente código:


Si ejecutamos el formulario lo veremos así:


Seleccionamos como queremos autenticarnos:


Selecciono autenticación Windows y lleno los campos exigidos:


Hago clic en aceptar:


En este momento ya estamos conectados a nuestra base de datos.

Espero que esta información te sea útil.

Si te gusto esta entrada, en este link encontraras una colección de mas de 20 macros que te serán útiles en la automatización de hojas de calculo.

Si necesitas automatizar tus proceso en excel escríbenos a macrosymacros1@gmail.com.

Si quieres aprender mas sobre Excel no dejes de ver nuestro curso online.





jueves, 8 de octubre de 2015

USO DEL CONTROL IMAGEN EN VBA EXCEL

Regularmente en nuestros programas en VBA tendremos que utilizar imágenes, para tal fin tenemos el control IMAGEN.

Este control como todos los demás tienen varias propiedades, algunas de ellas son:

NAME: Permite asignarle un nombre a el objeto el cual nos permitirá identificarlo dentro del código.

AUTOSIZE: nos permite ajustar la imagen al tamaño del control, dependiendo si le asignamos el valor true o false.

BORDERSTYLE: a esta propiedad podemos asignarle dos valores 0 sin borde 1 con borde.


PICTURE: Esta es la propiedad más importante pues nos permite asignar la imagen al control.

Para ejemplificar el uso de la propiedad imagen escribí una macro que nos permite asignar diferentes imágenes al control, ejemplos como este los puedes encontrar en el curso online de excel.

En la hoja de cálculo están registradas las direcciones en el PC de cuatro imágenes


Tenemos un formulario compuesto por un control combobox( en una entrada anterior vimos su uso) un botón de comando y el control de imagen


Llenamos el control combobox con la información de la hoja de cálculo, para dicho fin utilizamos el siguiente código, esta rutina recibe como parámetro el formulario:


Expliquemos un poco el código anterior, la variable WS de tipo worksheet representa la hoja de cálculo en la cual tenemos nuestros datos, la variable que hemos llamado final no servirá para identificar la última fila con datos en la hoja de Excel. Después de asignar la hoja de cálculo a la variable WS con la instrucción ( set ws _ thisworkbook.worksheets(“HOJA1”)) y calcular la última fila con datos con la instrucción (final = ws.range(“A1”).End(xlDown).Row), empezamos un ciclo que va desde la fila 2 hasta la fila final y durante el cual asignamos a la propiedad additem del combobox la información que tiene la hoja de cálculo en la fila i.

Para invocar la rutina “LLENAR_COMBO” en el código del botón de comando agregamos este código donde el parámetro “ME” representa el formulario:


Cuando el usuario haga clic o seleccione un dato del combobox  ejecutamos el siguiente código:


Lo que hacemos con este código es invocar la rutina “mostrar_imagen”  pasándole como parámetro la dirección de imagen seleccionada y el formulario.

Este es el código que llena el control de imagen


Cargamos la imagen en el control a la propiedad picture  con la instrucción LoadPicture(dirección), asignamos true a la propiedad autosize para que la imagen se ajuste al tamaño del control y le asignamos borde ( el valor fmBordeStyleSingle es igual a 1).

Para aprender más sobre este y otros temas visita el curso online  de excel.

En este enlace encontraras una colección de mas de 20 macros que podrás descargar.

Para automatizar tus proceso en excel escríbeme a macrosymacros1@gmail.com.

Espero que esta macro te sea de utilidad, por favor deja tus comentarios.


sábado, 3 de octubre de 2015

MACRO PARA LLENAR COMBOBOX CON DATOS DE UNA TABLA ACCES

De acuerdo al título de la entrada veremos cómo llenar un control combobox  tomando información de una tabla en acces.

El control combobox nos sirve para mostrar, seleccionar y escribir texto.

El control combobox tiene varios métodos entre ellos el método additem  el cual nos permite agregar datos al control.

Antes de escribir la macro cree una base de datos en acces de la cual tomare la información para llenar el control combobox.


Para empezar insertaremos un formulario en el entorno de desarrollo



Agregaremos al formulario un control combobox .



Agregaremos un boton de comando o commandButton


Crearemos el siguiente código que nos permitirá llenar el combobox , ejemplos como este los puedes encontrar en el curso online de excel.


Este procedimiento recibe como parámetro el formulario en que se encuentra el combobox.

Define las siguientes variables:
  1. DB de tipo dao.database que hace referencia a la base de datos.
  2. RS  de tipo dao.recorset que hace referencia a los registros de la tabla que recorreremos
  3. Strsql que contendrá la instrucción SQL que ejecutaremos.

Se abre la base de datos con la instrucción:
Set db.opendatabase(ubicación del archivo acces)

Ejecutamos la instrucción SQL y recorremos el resultado de la misma hasta llegar al final, mientras se recorre la consulta se agregan los registros al combobox con la instrucción
Fr.cmb1.Additem (registro de la consulta), donde Fr es el formulario , cmb1 es el control combobox.

Se debe agregar el siguiente código al botón de comando:


De esta forma cuando hagamos clic en el botón se invocara a la rutina Llenar_combo que definimos previamente,  el parámetro (ME) hace referencia al formulario.

Si ejecutamos la macro veremos lo siguiente:

Antes de hacer clic en el botón llenar veremos el combobox vacío


Después de hacer clic en el botón llenar veremos el combobox lleno



También podemos llenar un combobox con mas de una columna , en esta entrada te muestro como

Espero que esta macro te sea de utilidad , visita nuestro curso online de excel donde aprenderas mucho mas sobre este y otros temas relacionados con las macros.

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 proceso en excel escríbeme a macrosymacros1@gmail.com.







jueves, 1 de octubre de 2015

FORMULARIOS EN VBA

Hoy hablaremos sobre los formularios y algunas de sus propiedades. Para hablar de formularios o cualquier otro objeto en VBA debemos tener muy claro tres conceptos: métodos, propiedades y eventos.

METODOS: son las funciones de un objeto, en otras palabras lo que puede hacer el objeto. Si usáramos como ejemplo un automóvil este puede encender, arrancar, acelerar, parar.

PROPIEDADES: Son los atributos del objeto, en caso del automóvil por ejemplo el color.

EVENTOS: Un evento es aquello que indica a nuestro programa VBA  que  ocurrido algo en el entorno, dependiendo del evento que ocurra se activan procedimientos. Por ejemplo cuando hacemos clic en nuestra aplicación esto es un evento que activa un procedimiento.

Un formulario es un objeto más dentro de VBA con sus métodos, propiedades y eventos.

CREACION DE FORMULARIOS EN VBA EXCEL


Para crear un formulario hacemos clic en la opción insertar formulario del menú principal en el entorno de desarrollo VBA


Hacemos clic en UserForm , ya podemos empezar a trabajar con el formulario.

PROPIEDAD NAME


Esta propiedad nos permite asignarle un nombre a nuestro formulario, para el ejemplo le asigne como nombre al formulario Formulario1.



PROPIEDAD CAPTION


Esta propiedad nos sirve  para asignarle un texto a nuestro formulario, para el ejemplo asigne el texto formulario uno.


PROPIEDADES BACKCOLOR, BORDERCOLOR Y BORDERSTYLE


La propiedad backcolor sirve para establecer el color de fondo de nuestro formulario.
Se utiliza la combinación de colores RGB corresponde a rojo, verde, azul. Cada uno de estos colores se representa con un número entre 0 y 255.


La propiedad Bordercolor nos sirve para asignarle colores a los bordes del formulario


La propiedad BorderStyle sirve para establecer el estilo del borde en el  formulario, puede ser 0 ó 1


Podemos cambiar las propiedades de nuestro formulario en tiempo de ejecución, por ejemplo



Espero que esta entrada te haya sido útil, por favor deja tus comentarios. Si quieres aprender más sobre formularios y otros temas relacionados con VBA excel visita nuestro curso online de excel.