You are on page 1of 17

http://www.contextures.com/xlUserForm02.

html

Videos: Create a User Form


To see the steps for creating a UserForm, please watch these 3 short video tutorials. The
written instructions are below the video.
In the videos, Excel 2003 is used, and the same steps can be followed in later versions.
When saving the file in Excel 2007 or later, save as a macro-enable file type.

Creating a UserForm - Part 1


In part 1, you'll see how to create a blank Userform. Then you'll name the UserForm, and
next you'll add text boxes and labels.
Users will be able to type data into the text boxes. Labels are added beside the text boxes,
to describe what users should enter into the text box

http://www.youtube.com/watch?feature=player_embedded&v=5PN7lWJSobQ#!

Introduccin a los formularios de usuario


Para crear un formulario de usuario requiere un poco de programacin, y se puede ver los
pasos de los videos que se muestran a continuacin. Para las instrucciones escritas, mira
debajo de los videos.

En este ejemplo, los datos de inventario se almacena en una hoja de clculo oculto, en el
que est protegido de daos accidentales o eliminacin. Los usuarios introducen los datos
de inventario al abrir el formulario de usuario, rellenando las casillas y haga clic en un
botn.

Videos: Crear un formulario de usuario


Para ver los pasos para crear un formulario de usuario, por favor ver estos 3 tutoriales
cortos de vdeo. Las instrucciones escritas son debajo del video.
En los vdeos, Excel 2003 se utiliza, y los pasos que pueden seguir los mismos en
versiones posteriores. Al guardar el archivo en Excel 2007 o posterior, gurdelo como un
tipo de archivo de macro a habilitarlo.
Creacin de un formulario de usuario - Parte 1
En la parte 1, vers cmo crear un formulario de usuario en blanco. Entonces usted
nombrar el formulario de usuario, y el prximo va a aadir cuadros de texto y etiquetas.
Los usuarios sern capaces de escribir datos en los cuadros de texto. Las etiquetas se
agregan al lado de los cuadros de texto, para describir lo que los usuarios deben entrar en
el cuadro de texto
Creacin de un formulario de usuario - Parte 2
En la Parte 2, usted aprender cmo agregar botones y un ttulo en el formulario de
usuario.
Con botones en el formulario de usuario, el usuario puede hacer clic para que algo
suceda. Por ejemplo, haga clic en un botn despus de introducir los datos en los cuadros

de texto, cuando usted est listo para pasar los datos a la hoja de clculo de rea de
almacenamiento.
Creacin de un formulario de usuario - Parte 3
En la Parte 3, usted aprender cmo agregar cdigo de VBA a los controles, y vers cmo
probar el formulario de usuario.
El cdigo de VBA se ejecuta cuando ocurre un evento especfico, como hacer clic en un
botn, o entrar en un cuadro combinado. En este ejemplo, el usuario haga clic en un
botn, y el cdigo de VBA mover los datos para el rea de almacenamiento de hoja de
clculo.
Creacin de un formulario de usuario - Parte 4
En la Parte 4, podrs ver el cdigo que llena los elementos de los cuadros combinados.
Configurar la hoja de clculo
En este ejemplo, un inventario de las piezas se almacenan en una hoja de clculo oculto.

1. Abra un nuevo libro


2. Haga doble clic en la etiqueta de la hoja para Sheet1
3. Tipo: PartsData
4. Pulse la tecla Enter
5. En las celdas A1: D1, escriba los encabezados de la base de datos de inventario
de piezas, como se muestra a la derecha.
6. Seleccione Archivo | Guardar y guarde el libro. En este ejemplo, el archivo ha sido
nombrado PartsLocDB.xls .
NOTA: En Excel 2007 y versiones posteriores, guarde el archivo como un tipo de
archivo habilitado para macros.
La

Part Ubicac
Canti
Fecha
ID
in
dad

123 Tienda 03/03/2


45
001
004

87

Crear un formulario de usuario


UserForms se crean en el Editor de Visual Basic.

1. Para abrir el Editor de Visual Basic, mantenga pulsada la tecla Alt y pulse la tecla
F11
2. Seleccione Ver | Explorador de proyectos, para ver una lista de los proyectos. (Por
lo general, esto se muestra en el lado izquierdo de la ventana VBE.)
3. En el Explorador de proyectos, seleccione el proyecto PartLocDB.
4. En la barra de men, seleccione Insertar | UserForm

5. Un formulario de usuario en blanco, y la caja de herramientas abierta debera. (Si


el cuadro de herramientas no aparece, seleccione Ver | Herramientas)
Asigne un nombre al formulario de usuario
1. Para abrir la ventana Propiedades, pulse la tecla F4
2. En la ventana Propiedades, haga doble clic en el nombre - UserForm1 , en la parte
superior derecha de la ventana.
3. Tipo: frmPartLoc
y pulse la tecla Enter

4. El nombre del formulario cambiar en el Explorador de proyectos, pero la forma


todava muestra UserForm1 en su barra de ttulo.
5. En la ventana Propiedades, haga doble clic en la propiedad Caption - UserForm1 .
6. Tipo: Inventario de piezas
y pulse la tecla Enter
7. La barra de ttulo mostrar el nuevo ttulo.
Agregar un cuadro combinado al formulario de usuario
Los objetos en un UserForm botones, como cuadros de texto, y se llaman controles . Para
permitir a los usuarios introducir datos, puede agregar controles TextBox al formulario de
usuario Excel, con controles de etiqueta para describirlos.

1. En el Cuadro de herramientas, haga clic en el botn de ComboBox.

2. En el UserForm, haga clic cerca de la parte central superior, para agregar un


cuadro combinado de tamao estndar.

3. Con el nuevo cuadro combinado seleccionado, haga doble clic en la propiedad


Name en la ventana Propiedades.
4. Tipo: cboPart
y pulse la tecla Enter
5. (Opcional) Establezca la propiedad ColumnCount a 2, si desea ver el nombre de la
pieza en la lista con cada nmero.
6. Haga clic en una parte vaca del formulario de usuario de Excel, Excel para
seleccionar el formulario de usuario y para mostrar el cuadro de herramientas.

Agregar una etiqueta a la UserForm


Para ayudar a los usuarios introducir datos, puede agregar etiquetas para describir los
controles, o para ver las instrucciones.

1. En el Cuadro de herramientas, haga clic en el botn Etiquetas.

2. En el UserForm, haga clic a la izquierda del cuadro combinado, para agregar una
etiqueta de tamao estndar.

3. Con la nueva etiqueta seleccionada, haga doble clic en el ttulo propiedad en la


ventana Propiedades.
4. Tipo: Parte
y pulse la tecla Enter
5. Si es necesario, puede cambiar el tamao de la etiqueta, por lo que no cubre el
combobox - apuntan a la manija en su borde derecho y arrstrelo hacia la
izquierda.
6. Haga clic en una parte vaca del formulario de usuario, para seleccionar el
formulario de usuario y para mostrar el cuadro de herramientas.
Aadir casillas restantes y etiquetas
Repita los pasos anteriores para aadir:

un cuadro combinado denominado cboLocation , con una etiqueta de ubicacin

un cuadro de texto denominado txtDate , con una etiqueta Fecha

un cuadro de texto denominado txtQty , con una etiqueta Cantidad

Si los cuadros de texto no estn alineados, puede alinearlos:

1. Haga clic en el cuadro combinado de primera


2. Mantenga presionada la tecla Ctrl y haga clic en las casillas restantes
3. Elija Formato | Alinear | Izquierdas
4. Haga clic en una parte vaca del formulario de usuario, para seleccionar el
formulario de usuario y para mostrar el cuadro de herramientas.

Agregar botones al formulario de usuario


Para permitir a los usuarios realizar una accin, puede agregar botones de comando al
formulario de usuario. Este formulario tiene un botn para agregar datos a la base de
datos, y un botn para cerrar el formulario.

1. En el Cuadro de herramientas, haga clic en el botn de comando.

2. En el UserForm, haga clic en la parte inferior izquierda, para agregar un


CommandButton de tamao estndar.
3. Con el nuevo CommandButton seleccionado, haga doble clic en la propiedad
Name en la ventana Propiedades.
4. Tipo: cmdAdd
y pulse la tecla Enter
5. Con el nuevo CommandButton seleccionado, haga doble clic en la propiedad
Caption en la ventana Propiedades.
6. Tipo: Aadir esta parte
y pulse la tecla Enter
7. Haga clic en una parte vaca del formulario de usuario, para seleccionar el
formulario de usuario y para mostrar el cuadro de herramientas.
8. Repita los pasos anteriores para agregar un CommandButton llamado Cmdclose ,
con una etiqueta Close

9. Si es necesario, puede cambiar la posicin de los botones arrastrndolos a una


nueva ubicacin en el formulario de usuario.
Agregue cdigo a los botones
Para que los botones de realizar una accin, a crear cdigo que se ejecuta cuando se
pulsa el botn.
Agregue cdigo al botn cmdAdd

1. Seleccione el botn cmdAdd


2. En la barra de mens, seleccione Ver | Cdigo.
3. Esto crea un procedimiento, donde puede agregar el cdigo.

4. Cuando el cursor est parpadeando, introduzca el siguiente cdigo:


Private Sub cmdAdd_Click ()
LRow dvil como a largo
Lpart dvil como a largo
Ws As Hoja de Trabajo
Set ws = Worksheets ("PartsData")
'Find primera fila vaca de la base de datos
lRow = ws.Cells.Find (What: = "*", SearchOrder: = xlRows, _
SearchDirection: = xlPrevious, lookin:. = XlValues) Row + 1
lpart = Me.cboPart.ListIndex
'Comprobar si hay un nmero
Si Trim (Me.cboPart.Value) = "" Then
Me.cboPart.SetFocus
MsgBox "Escriba un nmero"
Exit Sub
End If
'Copiar los datos en la base de datos
Utilizacin proteger y desproteger lneas,
'Con su contrasea
'Hoja de trabajo si est protegido
Con ws
. 'Password Desproteger: = "password"
. Las clulas (lRow, 1). Valor = Me.cboPart.Value
. Las clulas (lRow, 2). Valor = Me.cboPart.List (lpart, 1)
. Las clulas (lRow, 3). Valor = Me.cboLocation.Value

. Las clulas (lRow, 4). Valor = Me.txtDate.Value


. Las clulas (lRow, 5). Valor = Me.txtQty.Value
. 'Protect Password: = "password"
Extremo con
'Borrar los datos
Me.cboPart.Value = ""
Me.cboLocation.Value = ""
Me.txtDate.Value = Format (Fecha, "Medium Date")
Me.txtQty.Value = 1
Me.cboPart.SetFocus
End Sub

5. En la barra de mens, seleccione Ver | Objeto, para volver al UserForm.


Agregue cdigo al botn Cmdclose
1. Seleccione el botn Cmdclose
2. En la barra de mens, seleccione Ver | Cdigo.
3. Cuando el cursor est parpadeando, introduzca el siguiente cdigo:
Private Sub cmdClose_Click ()
Unload Me
End Sub

4. En la barra de mens, seleccione Ver | Objeto, para volver al UserForm.

Para permitir a los usuarios cerrar el formulario pulsando la tecla


Esc:
1. Seleccione el botn Cmdclose
2. En la ventana Propiedades, cambie la propiedad Cancel en cierto

Para evitar que los usuarios cierren el formulario haciendo clic en el


botn X
Cuando el UserForm se abre, hay una X en la esquina superior derecha. Adems de
utilizar el botn Cerrar formulario, la gente ser capaz de cerrar el formulario mediante el
X. Si desea evitar esto, siga estos pasos.

1. Haga clic derecho en una parte vaca del formulario de usuario


2. Seleccione Ver | Cdigo
3. Desde el men desplegable Procedimiento, la parte superior derecha, seleccione
QueryClose

4. Cuando el cursor est parpadeando, pegue el cdigo en negrita de la muestra


siguiente
Private Sub UserForm_QueryClose (Cancel As Integer, _
CloseMode As Integer)
Si CloseMode vbFormControlMenu = Entonces
Cancel = True
MsgBox "Por favor, utilice el botn Cerrar formulario!"
End If
End Sub

4. En la barra de mens, seleccione Ver | Objeto, para volver al UserForm.


Ahora, si alguien hace clic en la X en el formulario de usuario, vern su mensaje.

Aadir a listas ComboBoxes


Para rellenar la lista desplegable, dinmicas rangos con nombre , se crear en el libro. A
continuacin, el cdigo a aadir los elementos del rea de distribucin de los cuadros
combinados, en el formulario de usuario se inicializa.
Crear dinmicas rangos con nombre
1. En Excel, inserte una hoja de clculo denominada LookupLists

2. En las columnas A y B, introduzca los ID de las partes y piezas, como se muestra


a la derecha, y en la columna E, escriba una lista de ubicaciones.

3. Seleccione Insertar | Nombre | Definir


4. En el cuadro Nombre, escriba: PartIDList
5. En el cuadro Se refiere a, escriba:
= OFFSET ($ A $ LookupLists! 2,0,0, CONTARA (LookupLists! $ A: $ A) -1,1)
6. Haga clic en Agregar
7. En el cuadro Nombre, escriba: PartsLookup
8. En el cuadro Se refiere a, escriba:
= OFFSET (PartIDList, 0,0, 2)
9. Haga clic en Agregar
10. En el cuadro Nombre, escriba: LocationList
11. En el cuadro Se refiere a, escriba:
= OFFSET (LookupLists! $ E $ 2,0,0, CONTARA (LookupLists! $ E: $ E) -1,1)
Agregue cdigo para crear las listas de
Para crear las listas desplegables, puede recorrer a travs de una lista en la hoja de
clculo, tal como se describe a continuacin. O bien, escriba el nombre de la lista de
rango en las propiedades del cuadro combinado, como se describe en el Excel VBA Partido
ComboBox pgina.

1. En el VBE, seleccione el formulario de usuario y seleccione Ver | Cdigo.


2. Desde la lista desplegable Procedimiento, la parte superior derecha, seleccione
Iniciar

3. Escriba el siguiente cdigo. Para obtener instrucciones detalladas acerca de este


cdigo, vea Excel VBA Listas ComboBox
Private Sub UserForm_Initialize ()
CPart As Range
CLOC As Range
Ws As Hoja de Trabajo
Set ws = Worksheets ("LookupLists")
For Each cPart En ws.Range ("PartIDList")
Con Me.cboPart
. AddItem cPart.Value
. Lista (ListCount -. 1, 1). CPart.Offset = (0, 1) Valor
Extremo con
Siguiente cPart
For Each CLOC En ws.Range ("LocationList")
Con Me.cboLocation
. AddItem cLoc.Value
Extremo con
Siguiente CLOC
Me.txtDate.Value = Format (Fecha, "Medium Date")
Me.txtQty.Value = 1
Me.cboPart.SetFocus
End Sub

Probar el formulario de usuario


Para probar el formulario, puede ejecutarlo desde el VBE.

1. Haga clic en una parte vaca del formulario de usuario, para seleccionar el
formulario de usuario y para mostrar el cuadro de herramientas.
2. En la barra de mens, seleccione Ejecutar | Ejecutar Sub / UserForm.

3. En la caja de texto Part, haga clic en la flecha y seleccione un ID de pieza


4. Pulse la tecla de tabulacin para desplazarse al siguiente control.
5. Cuando las cajas se han completado, haga clic en 'Agregar esta pieza' botn.
6. Haga clic en el botn "Cerrar Modelo", para volver a la VBE.
Si el orden de tabulacin es incorrecta (por ejemplo, cuando se presiona la tecla de
tabulacin que se mud a la caja de texto equivocado o botn), puede cambiar

1. Haga clic derecho en una parte vaca del formulario de usuario


2. Elegir Orden de tabulacin
3. Seleccione un control de la lista, y haga clic en Mover arriba o Mover abajo botn
4. Haga clic en Aceptar
Crear un botn para abrir el formulario de usuario
Para que sea ms fcil para los usuarios a abrir el formulario de usuario, puede agregar
un botn a una hoja de clculo.

1. Cambie a Excel y activar la PartLocDB.xls libro


2. Haga doble clic en la ficha de hoja de Hoja2
3. Tipo: Piezas de introduccin de datos
4. Pulse la tecla Enter

5. En la barra de herramientas Dibujo, haga clic en la herramienta Rectngulo (En


Excel 2007/2010, utilizar una forma de la pestaa Insertar)
6. En el centro de la hoja de clculo, dibujar un rectngulo, y un formato como se
desee.
7. Con el rectngulo seleccionado, escriba:
Haga clic aqu para agregar la informacin de parte

8. Haga clic en el borde rectngulo y seleccione "Asignar Macro '


9. Haga clic en el nuevo botn
10. Cuando el cursor est parpadeando, escriba: frmPartLoc.Show
11. Vaya a la ventana de Excel y haga clic en el botn para abrir el formulario de
usuario.
o

NOTA : Mientras el UserForm est abierto, usted no ser capaz de realizar


ninguna otra accin en Excel, como la introduccin de datos en la hoja de
clculo. Vas a tener que cerrar la primera forma.

Si desea que los usuarios puedan llevar a cabo otras acciones en Excel
mientras est abierto el formulario, cambie la lnea anterior
a: frmPartLoc.Show Falso para desactivar el ajuste modal

Crear una tabla dinmica


Para resumir los datos en el inventario de las piezas, puede crear una tabla dinmica.

1. Cambie a Excel y activar la PartLocDBCombo.xls libro


2. Seleccione la PartsData hoja.
3. Crear un rango con nombre dinmico PartsDatabase, con un refiere a la frmula:
= OFFSET ($ A $ PartsData! 1,0,0, CONTARA (PartsData! $ A: $ A), 5)

4. En la barra de men, seleccione Datos | Informe de tablas y grficos dinmicos


(En Excel 2007/2010, utilice el comando de tabla dinmica en la pestaa Insertar)
5. Haga clic en Siguiente y, en el cuadro Origen de datos, escriba: PartsDatabase
6. Haga clic en siguiente y haga clic en el botn Diseo.
7. Arrastre el botn PartID y el botn de la parte al rea Fila.
8. Arrastre el botn de ubicacin para el rea de columna
9. Arrastre el botn Cant. al rea de datos
10. Haga clic en el botn Finalizar
11. Nombre de la hoja de tabla dinmica, PartsInventory .
Crear un botn para ver la tabla dinmica
Para que sea ms fcil para los usuarios para actualizar y ver la tabla dinmica, puede
agregar un botn a una hoja de clculo.

1. Cambie a Excel y activar la PartLocDB.xls libro


2. Seleccione la entrada de datos de piezas hoja
3. Agregar un rectngulo con el texto ::
Presiona aqu para ver el inventario de piezas

4. Haga clic en el borde rectngulo y seleccione "Asignar Macro '


5. Haga clic en el nuevo botn
6. Cuando el cursor est parpadeando, escriba el siguiente cdigo:
On Error Resume Next
Con Worksheets ("PartsInventory")
. Activar
. Tablas dinmicas (1). PivotCache.Refresh
Extremo con

Termina el libro
Para terminar el libro, puede ocultar la hoja que contiene la base de datos.

1. Cambie a Excel y activar la PartLocDB.xls libro


2. Seleccione la PartsData hoja.
3. En la barra de men, seleccione Formato | Hoja | Ocultar (En Excel 2007/2010,
utilice los comandos de formato de la ficha Inicio)
4. Eliminar todas las hojas, excepto las partes de introduccin de datos
5. Haga clic en el Haga clic aqu para aadir informacin Parte botn e introduzca
sus datos en la base de datos.
6. Cierre y guarde el libro

You might also like