Sei sulla pagina 1di 35

Visual Basic

Macros de Excel

Macros desde Visual Basic

Es un lenguaje (Codificacin), que se puede utilizar, como lenguaje comn entre los diferentes
programas que se tiene en el Microsoft Office, cabe mencionar que esta basado en un
Lenguaje llamado Visual Basic, pero no tiene mucho que ver con l.

La macros de Visual Basic estn basadas en mdulos, que por tal hecho se vuelven ms
complicadas, teniendo como ventaja que son compatibles dentro de varias aplicaciones, de
esta manera se tendra un lenguaje comn de macros entre varios programas, con lo cual se
logra que se pierda menos tiempo en realizar una macro en alguno de estos programas. Por
esta razn es que las macros de Visual Basic es visto en un curso en particular.
Ejercicios

Cree las siguientes macros:

1. Macro "archivo" que se active con Control + a y que permita abrir un archivo
2. Macro "seleccion" que seleccione las celdas A1:B10 de la primer hoja del libro abierto
3. Macro "letra" que ponga letra tipo arial
4. Macro "color" que ponga letra de color Azul
5. Macro "tamao" que ponga letra de tamao 14
6. Macro "Todo" que una las macros anteriores

TALLER

Cree las siguientes macros:

1. Una Macro "operacion" que copie los valores que tengan las celdas A1:A10 en las
celdas B1:B10 y en C1:C10 y sume los valores de cada fila (A1,B1,C1) en D1 hasta
D10 respectivamente.

2. Una Macro "suma" que sume las celdas A1:A10 en A11, B1:B10 en B11, C1:C10 en
C11 y D1:D10 en D11
3. Una Macro "formato" que ponga todos los numeros con dos decimales, de color azul y
con tamao de letra 14
4. Una Macro "Texto" que inserte una fila al inico de la tabla y ponga como rotulos en
cada celda asi:
en A1=Valor 1
en B1=Valor 2
en C1=Valor 3
en D1=Total
5. Una Macro "Todo" que una todas las macros anteriores

Botones, Funciones y Cdigos de una Macro


OBJETIVOS

Botones para ejecutar macros


Controles y macros
Cdigos de una macro
Funciones para automatizar tareas
Ejercicios

Botones para ejecutar macros

La ejecucin de la macro se puede hacer de distintas formas.


Si tiene asignado una combinacin de teclas de mtodo abreviado con stas se puede iniciar la
ejecucin.

Tambin se puede asignar a un botn de la barra de herramientas. Cuando se personaliza una


barra de herramientas y se incluye en ella algn botn de la categora personalizadas.

Agregar un botn a una barra de herramientas

Asegrese de que est visible la barra de herramientas, para mostrar una barra de
herramientas, utilice el cuadro de dilogo Personalizar elija Barras de herramientas en el men
Ver y haga clic en Personalizar.

Para ver ms botones, haga clic en Modificar seleccin y en Cambiar imagen del botn en el
men de Personalizar.
Al incluir el botn en cualquier barra de herramientas, se genera el boton de Modificar
Seleccin al desplegarlo exixte la opcion asignar macro en una caja de dilogo como la que se
muestra a continuacin:

Aqu aparecen listadas las macros que contiene ese libro o el libro personal de macros para
que se asigne al botn. Adems, permite Grabar una nueva macro y Editar una ya existente.

Agregar un control de la barra de herramientas Formularios


Existen diferentes tipos de controles que permiten ejecutar macros.

Muestre la barra de herramientas Formularios: seleccione Barras de herramientas en el men


Ver y haga clic en Formularios.

Estos son los controles existentes en Excel:

Label Texto que proporciona informacin sobre un control, de la hoja de clculo o de un


formulario.

Cuadro de edicin No est disponible en los libros de Microsoft Excel. Este control se
proporciona para que pueda trabajar con las hojas de dilogo de Excel versin 5.0.

Cuadro de grupo Agrupa los controles relacionados, como los botones de opcin o las
casillas de verificacin.

Botn Ejecuta una macro cuando se hace clic en l.

Casilla de verificacin Activa o desactiva una opcin. Puede activarse ms de una casilla
de verificacin a la vez en una hoja o en un grupo.

Botn de opcin Selecciona una de las opciones de un grupo contenido en un cuadro de


grupo. Utilice los botones de opcin para permitir solamente una de varias posibilidades.

Cuadro de lista Muestra una lista de elementos.

Cuadro combinado Un cuadro de lista desplegable. El elemento que se seleccione en el


cuadro de lista aparecer en el cuadro de texto.

Crear cuadro combinado de lista No est disponible en los libros de Excel. Este control
se proporciona para que pueda trabajar con las hojas de dilogo de Excel versin 5.0.

Crear cuadro combinado desplegable No est disponible en los libros de Excel. Este
control se proporciona para que pueda trabajar con las hojas de dilogo de Excel versin 5.0.

Barra de desplazamiento Sirve para desplazarse a travs de un rango de valores cuando


se hace clic en las flechas de desplazamiento o cuando se arrastra un cuadro de
desplazamiento. Puede desplazarse por una pgina de valores haciendo clic entre el cuadro de
desplazamiento y una flecha de desplazamiento.
Control de giro Aumenta o disminuye un valor. Para aumentar el valor, haga clic en la
flecha arriba; para disminuir el valor, haga clic en la flecha abajo.

Si desea que el control ejecute una macro existente, abra el libro que contiene la macro.

Haga clic en la hoja de clculo donde desee agregar el control.


Muestre la barra de herramientas Formularios: seleccione Barras de herramientas en el men
Ver y haga clic en Formularios.
Haga clic en el botn del control que desee agregar.
En la hoja de clculo, arrastre el control hasta que tenga el tamao que desee.

Asignar una macro existente

Si agrega un botn, seleccione la macro que debe ejecutar el botn en el cuadro Nombre de la
macro.

Si agrega un control que no sea un botn, haga clic con el botn secundario en el control y, a
continuacin, elija Asignar macro en el men contextual. Seleccione la macro que desee.

Grabar o escribir una nueva macro

Si la macro no existe, haga clic en Grabar en el cuadro de dilogo Asignar macro para grabar
una nueva macro o haga clic en Nueva para abrir un mdulo Visual Basic para Aplicaciones
(VBA) de Microsoft en el que puede escribir la macro.

Haga clic con el botn secundario en el control, elija Modificar texto y agregue el texto para el
control. Cuando haya terminado, haga clic con el botn secundario en el control y, a
continuacin, haga clic en Salir de Modificar texto.
Establezca las propiedades del control.

Cdigos de una macro

Para observar los cdigos de una macro debemos de seguir los siguientes pasos y crear una:

A. Trasldese a la celda A3 antes de empezar la grabacin de la Macro


B. Presione el Botn Grabar Nueva Macro del men Macro en Herramientas

C. En la opcin Mtodo Abreviado escriba la letra k.


D. Presione el botn Aceptar. Excel inicia la grabacin del la Macro1
E. Trasldese a la celda A1 y escriba MACROS.
F. Despus del Enter pare la grabacin de la macro con el botn Detener Grabacin.

Excel a grabado los pasos y a generado un cdigo, para visualizarlo realice las siguientes
operaciones:

G. Presione la tecla Alt + la tecla de funcin F11(Alt + F11). Excel nos lleva al Editor de Visual
Basic o tambin puede entrar al Editor de Visual Basic desde el Men Herramientas, Macro y
Editor de Visual Basic.
H. Active los siguientes cuadros o ventanas normalmente estan activos:

De clic en el Men Ver y elija la opcin Explorador de Proyectos

De clic en el Men ver y elija la opcin Ventana Propiedades


I. Del cuadro Proyecto de doble clic en Mdulos o simplemente presione el signo de + que
aparece en la opcin Mdulos. Se activara debajo de Mdulos la Opcin Modulo1
J. Con doble clic en Modulo1 se mostrara en el Editor de Visual Basic el cdigo de la macro
que grabamos anteriormente asi:

Sub y End Sub indican el inicio y el final del procedimiento de la Macro1


Todo lo que aparece con un apostrofe son comentarios y ese texto debe de aparecer de
color verde y no ejecuta nada en la macro.
Range("A1").Select La orden Range nos permite trasladarnos a una celda en este caso A1
ActiveCell.FormulaR1C1 = "MACROS" Esto indica que se escribir en la celda en que se
encuentra el texto MACROS. Todo lo que esta entre comillas siempre ser un valor de texto. La
orden ActiveCell.FormulaR1C1 nos permite escribir un valor en la celda activa.
Range("A2").Select Otra vez indicamos que se traslade a la celda A2. Esto se debe a que
cuando se escribe el texto MACROS en A1 presionamos Enter y el indicador de celda bajo a la
celda A2.

Observemos el siguiente cdigo

Puede ejecutar la macro desde el editor de Visual Basic con el boton de ejecucin de macros
en la barra de herramientas
Automticamente se plasman los resultados en la hoja de Excel, tambin puede ejecutarla con
control + k o en el men de Macros, Ejecutar y el men de Herramientas.

Funciones utiles para automatizar tareas

Cdigos tpicos para las macros se pueden resumir en:

Cdigo Accin
Trasladarse a una
Range("A1").Select
Celda
Escribir en una
Activecell.FormulaR1C1="MACROS"
Celda
Letra Negrita o
Selection.Font.Bold = True
Negrilla
Selection.Font.Italic = True Letra Cursiva
Selection.Font.Underline = xlUnderlineStyleSingle Letra Subrayada
With Selection.Font
Tipo de
.Name = "Arial"
Letra(Fuente)
End With
With Selection.Font Tamao de
.Size = 15 Letra(Tamao de
End With Fuente)
Selection.Copy Copiar
Selection.Cut Cortar
ActiveSheet.Paste Pegar
Sale una ventana
MsgBox "Curso de Macros" con un mensaje en
pantalla
With Selection
.HorizontalAlignment = xlCenter Centrar Texto
End With
With Selection
Alinear a la
.HorizontalAlignment = xlLeft
izquierda
End With
With Selection
Alinear a la
.HorizontalAlignment = xlRight
Derecha
End With
Selection.EntireRow.Insert Insertar Fila
Selection.EntireRow.Delete Eliminar Fila
Selection.EntireColumn.Insert Insertar Columna
Selection.EntireColumn.Delete Eliminar Columna
Workbooks.Open Filename:="C:\Temp\prueba.xls" Abrir un Libro
ActiveWorkbook.SaveAs
Filename:="C:\Temp\prueba.xls", FileFormat _
Grabar un Libro
:=xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:= _False, CreateBackup:=False

Ejercicios
1. Cree una macro que permita encontar los datos de una factura deterninada utilizando
el archivo ventas.xls de su escritorio, y cree un botn llamado buscar para poder
encontar losdatos de otras facturas.
2. Cree una hoja en la que existen diferentes botones de opcin y cada uno de ellos tiene
diferentes valores de descuentos para una lista de productos, y que de acuerdo a la
seleccin del botn de opcin se muestre el descuento en la hoja de calculo y las
respectivas operaciones en ella, como muestra el ejemplo:

1. Cree una barra de herramientas propia con 5 macros que ejecuten las siguientes
tareas:
o Un botn que permita poner en Negrita la seleccin actual de celdas
o Un botn que centre el contenido de las celdas seleccionadas
o Un botn que elimine la columna selecionada y emita un mensaje informando
de la accin
o Un botn que copie el contenido de las celdas o celda seleccionada
o Un botn que pegue el contenido de las celdas o celda copiadas

Formularios y Controles en Visual Basic para Excel

OBJETIVOS

Crear Formularios
Insertar Controles
Editar algunas Propiedades
Programacin de Formularios
Crear Formulas en los Formularios
Ejercicios

Crear Formularios

Un formulario es una ventana independiente que se crea con controles y esos controles
responden a comandos que se programan con Visual Basic.
Para crear un formulario en Excel Abra un libro de trabajo en blanco, luego presione La Teclas
Alt + F11, para entrar al editor de Visual Basic o de clic en Herramientas, Macro y Editor de
Visual Basic.

Del Men Insertar elija la Opcin UserForm. Esto inserta el Formulario que se programara con
controles.

En el Explorador de Proyecto se observara que se inserto el UserForm.

Utilice la ventana Propiedades para cambiar el nombre, comportamiento y aspecto del


formulario. Por ejemplo, para cambiar el ttulo de un formulario, establezca la propiedad
Caption.

Cada ventana de formulario UserForm tiene un botn Maximizar, Minimizar y Cerrar.

Puede ver la cuadrcula del formulario UserForm y determinar el tamao de las lneas de
cuadrcula en la ficha General del cuadro de dilogo Opciones.

Puede utilizar los botones del cuadro de herramientas para dibujar controles en el formulario
UserForm. Puede establecer controles para alinearlos con la cuadrcula del formulario
UserForm en la ficha General del cuadro de dilogo Opciones.
Tambin cuando de clic en el Formulario UserForm1 se debe de activar el Cuadro de
Herramientas, si no se activa de clic en el Men Ver y elija la opcin Cuadro de Herramientas.

El Cuadro de Herramientas muestra los controles estndar de Visual Basic junto con los
controles ActiveX y los objetos que se pueden insertar que se han agregado al proyecto.
Insertar Controles

Para agregar controles a un formulario UserForm, busque el control que desea agregar en la
Caja de herramientas, arrstrelo al formulario y, a continuacin, arrastre el controlador de ajuste
del control hasta que el contorno tenga el tamao y forma deseados.

Una vez agregados los controles al formulario, utilice los comandos del men Formato, en el
Editor de Visual Basic, para ajustar la alineacin y espaciado del control.

Controles del cuadro de herramientas estndar

Seleccionar objetos

Seleccionar objetos es el nico elemento del cuadro de elementos que no dibuja un control.
Cuando se selecciona, slo puede cambiar el tamao o mover un control que ya se haya
dibujado en un formulario.

Etiqueta

Permite tener texto que no desee que cambie el usuario, como el ttulo debajo de un grfico.

Cuadro de texto

Contiene texto que el usuario puede introducir o cambiar.

Cuadro combinado

Permite dibujar un cuadro de lista combinado y un cuadro de texto. El usuario puede elegir un
elemento de la lista o introducir un valor en el cuadro de texto.

Cuadro de lista

Se utiliza para mostrar una lista de elementos entre los que puede elegir el usuario. Puede
desplazarse por la lista si sta contiene ms elementos de los que se pueden ver en un
determinado momento.

Casilla de verificacin

Crea una casilla que el usuario puede elegir fcilmente para indicar si algo es verdadero o falso
o para mostrar varias elecciones cuando el usuario puede elegir ms de una.

Botn de opcin

Permite mostrar varias elecciones entre las que el usuario slo puede elegir una.

Botn de alternar

Crea un botn que alterna entre activado y desactivado.


Marco

Permite crear una agrupacin grfica o funcional de controles. Para agrupar los controles,
dibuje primero el marco y despus los controles dentro del marco.

Botn de comando

Crea un botn que el usuario puede elegir para realizar la accin de un comando.

Barra de tabulaciones

Permite definir mltiples pginas para la misma rea de una ventana o cuadro de dilogo de la
aplicacin.

Pgina mltiple

Presenta mltiples pantallas de informacin como un solo conjunto.

Barra de desplazamiento

Proporciona una herramienta grfica para desplazarse rpidamente por una larga lista de
elementos o una gran cantidad de informacin, para indicar la posicin actual en una escala o
como un dispositivo de entrada o indicador de velocidad o cantidad.

Botn de nmero

Un control de giro que se puede utilizar con otro control para aumentar o reducir los nmeros.
Tambin lo puede utilizar para desplazarse hacia delante o detrs de un intervalo de valores o
una lista de elementos.

Imagen

Muestra una imagen grfica de un mapa de bits, icono o metaarchivo en el formulario. Las
imgenes mostradas en un control Imagen slo pueden ser decorativas.

Editar algunas Propiedades

Las propiedades se pueden editan desde el cuadro de propiedades o desde el Editor de Visual
Basic mientras escribe la programacin de los controles.

Desde el cuadro de propiedades existen dos formas de buscar las propiedades de un objeto,
de forma Alfabtica y por Categoras.
Algunas de las propiedades ms importantes son:

Propiedad Caption

Texto descriptivo que identifica o describe a un objeto.

Sintaxis: objeto.Caption [= String]

Ejemplo: Label1.Caption = "Macros"

Comentarios
El texto identifica o describe el objeto con el que est asociado. Para los botones y etiquetas, la
propiedad Caption especifica el texto que aparece en el control. Para los objetos Page y Tab,
especifica el texto que aparece en la ficha.

Si un ttulo de un control es demasiado largo, se trunca. Si el ttulo de un formulario es


demasiado largo para la barra de ttulo, el ttulo se muestra con puntos suspensivos.

La propiedad ForeColor del control determina el color del texto en el ttulo.

Propiedad ForeColor

Especifica el color de primer plano de un objeto.

Sintaxis: objeto.ForeColor [= Long]

Ejemplo: Label1.ForeColor = RGB(255, 255, 0)

Comentarios

Utilice la propiedad ForeColor para controles de formularios con el fin de hacerlos ms fciles
de leer o para transmitir un significado especial. Por ejemplo, si un cuadro de texto informa del
nmero de unidades en almacn, puede cambiar el color del texto cuando el valor caiga por
debajo del nivel de nuevo pedido.

Propiedad BackColor

Especifica el color de segundo plano del objeto.

Sintaxis: objeto.BackColor [= Long]

Ejemplo: Label1.BackColor = RGB(255, 0, 0)

Comentarios

Slo puede ver el color de fondo de un objeto si la propiedad BackStyle se establece a


fmBackStyleOpaque.

Propiedad BackStyle

Devuelve o establece el estilo de fondo para un objeto.

Sintaxis: objeto.BackStyle [= fmBackStyle]


Ejemplo: Label1.BackStyle = 0

Comentarios

La propiedad BackStyle determina si un control es transparente. Si la propiedad BackStyle es


fmBackStyleOpaque o 1, el control no es transparente y no puede ver nada que haya detrs del
control en un formulario. Si la propiedad BackStyle es fmBackStyleTransparent o 0, puede ver a
travs del control y observar cualquier elemento que haya detrs del mismo en el formulario.

Propiedad BorderStyle

Especifica el tipo de borde utilizado por un control o un formulario.


Sintaxis: objeto.BorderStyle [= fmBorderStyle]
Ejemplo: Label1.BorderStyle = 1

Comentarios

Puede utilizar tanto el control BorderStyle como el control SpecialEffect para especificar el
borde para un control, pero no ambos, fmBorderStyleNone 0 El control no tiene una lnea de
borde visible, fmBorderStyleSingle 1 El control tiene un borde de una sola lnea y es el
predeterminado.

Propiedad BorderColor

Especifica el color del borde de un objeto.

Sintaxis: objeto.BorderColor [= Long]


Ejemplo: Label1.BorderColor = RGB(0, 255, 0)

Comentarios

Para utilizar la propiedad BorderColor, la propiedad BorderStyle se debe establecer a un valor


distinto de fmBorderStyleNone.

La propiedad BorderStyle utiliza BorderColor para definir los colores de los bordes.

Propiedad Visible

Especifica si un objeto es visible o est oculto.

Sintaxis: objeto.Visible [= Boolean]


Ejemplo: Label1.Visible = False

Comentarios

Utilice la propiedad Visible para controlar el acceso a informacin sin mostrarla. Por ejemplo,
podra utilizar el valor de un control en un formulario oculto como criterio para una
consulta.True El objeto es visible, predeterminado. False El objeto est oculto.

Todos los controles son visibles en tiempo de diseo.

Propiedad Enabled

Especifica si un control puede recibir el enfoque y responder a eventos generados por el


usuario.

Sintaxis: objeto.Enabled [= Boolean]


Ejemplo: CommandButton1.Enabled = False

Comentarios

Utilice la propiedad Enabled para habilitar y deshabilitar controles. Un control deshabilitado se


muestra atenuado, mientras que un control habilitado no. True El control puede recibir el
enfoque y responder a eventos generados por el usuario, y se puede tener acceso al mismo
mediante cdigo, predeterminado. False El usuario no puede interactuar con el control
utilizando el mouse, pulsaciones de teclas, teclas aceleradoras o teclas de acceso directo.
Generalmente se puede tener acceso al control mediante cdigo.
Objeto Font

Define las caractersticas del texto utilizado por un control o un formulario.

Propiedad Name

Especifica el nombre de un control u objeto, o el nombre de una fuente asociada al objeto Font.

Sintaxis: Font.Name [= String]


Ejemplo: Label1.Font.Name = "Time New Roman"

Propiedades Bold, Italic, Size, StrikeThrough y Underline

Especifica los atributos visuales del texto en un formulario en pantalla o impreso.

Sintaxis: objeto.Bold [= Boolean]


Ejemplo: Label1.Font.Bold=True

Sintaxis: objeto.Italic [= Boolean]


Ejemplo: Label1.Font.Italic=True

Sintaxis: objeto.Size [= Currency]


Ejemplo: Label1.Font.Size=20

Sintaxis: objeto.StrikeThrough [= Boolean]


Ejemplo: Label1.Font.StrikeThrough=True

Sintaxis: objeto.Underline [= Boolean]


Ejemplo: Label1.Font.Underline=True

Los valores para Boolean son:

Valor Descripcin
True El texto tiene el atributo especificado es decir, negrita, cursiva, tamao, marcas de
tachado o subrayado, o grosor.
False El texto no tiene el atributo especificado, predeterminado.

Programacin de Formularios

Creamos una hoja de calculo y en ella una tabla con los siguientes rotulos:
Creamos un Formulario presionando La Teclas Alt + F11, para entrar al editor de Visual Basic o
de clic en Herramientas, Macro y Editor de Visual Basic.

Del Men Insertar elija la Opcin UserForm. Esto inserta el Formulario que se programara con
controles.

Para visualizar algunas acciones de un formuladio vamos a crear los siguientes elementos:
Y modificamos las propiedades de cada elemento dejando los controles de la siguiente forma:
Damos doble Clic al botn de Insertar y escribimos el siguiente codigo:
Luego damos doble clic en UserForm1 de la ventana de Proyecto y nos lleva al Formulario
nuevamente.
Damos doble Clic al botn de Cerrar y escribimos el siguiente cdigo:

Ahora ejecutamos el formulario con el botn Ejecutar de la barra de herramientas.


Nos muestra el siguiente formulario y podemos insertar datos.

Al darle clic en Insertar los datos del control se llevaran a la hoja de calculo en las celdas
programadas.
Podemos agregar una macro para ejecutar el formulario desde un botn con el siguiente
cdigo:
Ahora podremos ejecutar el formulario desde la hoja donde esta la tabla de datos.
ELABORANDO UNA CONSULTA

Todo Registro de informacin debe de tener su propia Consulta, Baja y


Modificacin, es por eso que en este nuevo capitulo nos concentramos en ello,
primeramente en poder consultar la informacin que ya se escribi en la Hoja de
Excel, obviamente desde una Macro combinada con Visual Basic, observemos el
siguiente ejemplo:

Fase I

1. Presione La Teclas Alt + F11, para entrar al editor de Visual Basic.


2. Activa las siguientes opciones:
De clic en el Men Ver y elija la opcin Explorador de Proyectos
De clic en el Men ver y elija la opcin Ventana Propiedades
3. Del Men Insertar elija la Opcin UserForm. Esto inserta el Formulario que
programaremos con controles. En el Explorador de Proyecto se observara que
se inserto el UserForm.

Ahora crearas un formulario con el siguiente aspecto:

el formulario tendr:

Tres etiquetas
Tres Textbox
Tres Botones de Comando

Los datos que se preguntaran sern Nombre, Direccin y Telfono. Los tres botones
nos servirn para lo siguiente: Consultar consultara la informacin que hayamos
insertado desde el botn insertar. Baja podr eliminar algn dato que se consulto y no lo
queremos. Insertar tendr la funcin de insertar los registros que vayamos dando de
alta, es como los ejercicios anteriores. A continuacin se muestra como se deben de
programar estos Controles:

Programacin de los Controles:

BOTON DE CONSULTA

Private Sub CommandButton1_Click()


Cells.Find(What:=TextBox1, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate

ActiveCell.Offset(0, 1).Select
TextBox2 = ActiveCell

Rem la lnea que contiene el ActiveCell.Offset(0, 1).Select permite moverse una


columna a la derecha, por lo tanto despus de la bsqueda de las primeras lneas con
Cell.Find si encuentra el Nombre de la persona se mueve a la siguiente columna y la
lnea TextBox2 = ActiveCell Permite capturar el valor de la celda al Textbox2 y as
mostrar el dato de la celda en el TextBox2.

ActiveCell.Offset(0, 1).Select
TextBox3 = ActiveCell

Rem Cada vez que se escriba la lnea ActiveCell.Offset(0, 1).Select significa que se
tiene que moverse una columna a la derecha.

Rem Si el nombre que tratas de consultar no se encuentra podra generar un error


porque fallara el Cell.Find esto puede ocurrir en el Word 97, yo trabajo con el Word
2000 o XP y no tengo ese problema. Pero esto se solucionara con una trampa de error.

End Sub

BOTON BAJA
Private Sub CommandButton2_Click()
Selection.EntireRow.Delete
Range("A9").Select
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
TextBox1.SetFocus
End Sub

BOTON INSERTAR

Private Sub CommandButton3_Click()


Range("A9").Select
Selection.EntireRow.Insert
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
TextBox1.SetFocus
End Sub

CUADROS DE TEXTO
Private Sub TextBox1_Change()
Range("A9").FormulaR1C1 = TextBox1

Rem esta primer lnea reemplaza a estas dos que te parece todava mas corta

Range("A9").Select
ActiveCell.FormulaR1C1 = TextBox1

End Sub

Private Sub TextBox2_Change()


Range("B9").FormulaR1C1 = TextBox2
End Sub

Private Sub TextBox3_Change()


Range("C9").FormulaR1C1 = TextBox3
End Sub

Si con el Botn Consulta tienes un error cuando no encuentra a la persona, entonces


tendrs que agregar esto a tu cdigo del Botn Consultar

BOTON DE CONSULTA

Private Sub CommandButton1_Click()

On Error Goto noencontro

Rem esta lnea genera una trampa de error si Excel encuentra un error se le dice que se
vaya a la etiqueta noencontro que esta definida mas adelante en el cdigo. No use la
trampa de error si no tiene problemas a la hora de que no encuentra a la persona.
Recuerde si usted comete cualquier error Excel se dirigir a la etiqueta noencontro.y
esquivara cualquier error, hasta uno que usted cometa en la programacin.

Cells.Find(What:=TextBox1, After:=ActiveCell, LookIn:=xlFormulas, LookAt _


:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate

ActiveCell.Offset(0, 1).Select
TextBox2 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox3 = ActiveCell

Rem Tambin se puede utilizar este cdigo para leer la informacin de las celdas lo que
esta en azul. La diferencia es que se asignan los valores a variables y despus se
descargan a los TextBoxs.

ActiveCell.Offset(0, 1).Select
Direccion = Activecell

ActiveCell.Offset(0, 1).Select
Telefono = Activecell

TextBox2 = Direccion
TextBox3 = Telefono

noencontro:
Rem Aqu se esquiva el error

End Sub

Que te parece es increble como una Macro combinada con Visual Basic puede hacer
hasta lo imposible

Bueno ya tenemos elaborado un ejercicio de consultas de datos, ahora accesaremos al


formulario desde Excel sin necesidad de entrar al Editor de Visual Basic.

Para realizar este ejercicio debemos permanecer dentro del Editor de Visual Basic para
poder introducir el cdigo en un Modulo, por lo tanto debers seguir los siguientes
pasos:

De clic en el Men Insertar y elija la opcin Modulo


Escriba dentro del Modulo el nombre del modulo en este caso Sub
Entrada

Cuando usted escriba Sub Entrada aparecer de la siguiente manera:

Sub Entrada()

Load UserForm1
UserForm1.Show

End Sub

Usted deber escribir las dos lneas que estn en medio que son:
Load UserForm1
UserForm1.Show

La primer lnea significa que cargue a la memoria el formulario que se llama


UserForm1, la segunda lnea significa que lo muestre, esto quiere decir que en el
modulo estamos escribiendo el cdigo de una macro que permitir cargar el formulario
desde Excel sin necesidad de entrar al Editor de Visual Basic.

Si te fija en el explorador de proyecto aparece el Modulo que creamos.

si queremos volver al formulario solo da doble clic en UserForm1


Bueno ya esta listo ahora salgamos del Editor de Visual Basic y volvamos a Excel.

De clic en el Men Archivo del Editor de Visual Basic


Elija la opcin Cerrar y volver a Microsoft Excel

Ya que estamos en Excel, podemos insertar una imagen o un botn o cualquier grafico,
por ejemplo:

De clic en el Men Insertar


Elija la opcin Imagen, seguido por Imagen Prediseada
inserte cualquier imagen y dele el tamao que usted desea.
De clic derecho sobre la Imagen
Elija la opcin Asignar Macro
De clic en la Macro que se llama Entrada, es obvio la nica que hicimos
De Clic en Aceptar
De clic fuera de la imagen en cualquier celda y listo si presionas la imagen
cargara el formulario.

Potrebbero piacerti anche