Professional Documents
Culture Documents
Con nuestra Tabla1 creada, ya podemos irnos al Editor de VBA (Alt+F11) e insertar un UserForm (Formulario), buscaremos en la
ventana de controles la opcin Cuadro de lista, y lo desplegaremos dentro del Formulario donde deseemos::
Una vez incluido el ListBox en nuestro formulario, deberes configurarlo para que recoja los registros de nuestra Tabla1 de la Hoja
de clculo como elementos del recien creado ListBox1, adems deberemos definirlo de tal forma que el encabezado de la Tabla1
aparezca como cabecera de nuestro ListBox1, por supuesto, cada campo deber aparecer en una columna independiente.
Para ello deberemos trabajar con distintas propiedades de este ListBox, como son:
ColumnCount: en el que indicaremos cuantas columnas vamos a crear, para nuestro ejemplo, le asignaremos un valor de
tres (una por cada campo 'Producto', 'Unidades' y 'Precio')
ColumnHead: donde seleccionaremos True o False dependiendo de si queremos mostrar encabezado o no.
Ojo, por que en este caso, es importante para evitar posibles fallos, haber definido nuestro origen de datos, en la Hoja de
clculo, como Tabla Lista.
RowSource: donde le indicaremos dnde se encuentra el origen de datos, para nosotros ser 'Tabla1'.
Estas propiedades del ListBox se pueden definir bien desde la Ventana de propiedades, o bien directamente con cdigo.
Veamos cmo definimos estas propiedades con cdigo VBA, para ello haremos doble click sobre nuestro UserForm y aadiremos el
cdigo:
view plainprint?
1. Private Sub UserForm_Initialize()
2. 'le decimos cuntas columnas tendr
3. ListBox1.ColumnCount = 3
4. 'que s que tiene encabezado
5. ListBox1.ColumnHeads = True
6. 'el origen de datos en nuestra hoja de clculo
7. ListBox1.RowSource = "Tabla1"
8.
9. End Sub
Con la intruccin Private Sub UserForm_Initialize() conseguimos que el ListBox se cargue cada vez que iniciamos el formulario.
El resultado del Formulario lo podemos ver al ejecutarlo:
Veamos cmo definimos estas mismas propiedades desde la Ventana de propiedades activa para nuestro ListBox1:
A partir de nuestro ListBox podremos trabajar bien sobre otros cdigos o bien directamente sobre nuestra Hoja de clculo... pero
eso ser en posteriores entradas.
2.- Entramos al editor de Visual Basic para Aplicaciones con Alt + F11. I
3.- Insertamos un UserForm y le aadimos un control de ComboBox, un Label y dos botones (Buscar y Cerrar)
4. Damos doble click en una parte del formulario (no en algn objeto). Se podr automticamente el mtodo Activate. Ponemos
el siguiente cdigo:
Private Sub UserForm_Activate()
Asignamos como fuente la lista previamente creada
Me.cmbAsesores.RowSource = "lstAsesores"
Le damos el foco al ComboBox
cmbAsesores.SetFocus
End Sub
5.- Ahora damos doble click al botn Buscar y agregamos el siguiente cdigo:
Private Sub CommandButton1_Click()
Si existe algn error se brinca a la etiqueta Fin
On Error GoTo Fin
Para tener este cdigo, se puede utilizar la grabadora de macros
Cells.Find(What:=cmbLista, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
cmbLista.SetFocus
Cierra el formulario
Unload Me
Sale del procedimiento sin necesidad de llegar a la etiqueta Fin
Exit Sub
Fin:
Si el dato escrito no est en la lista arroja el siguiente error
MsgBox "El dato " & cmbLista & " no se encuentra en esta hoja", vbInformation, "Excel e Info"
cmbLista = ""
cmbLista.SetFocus
End Sub
Dependiendo del diseador la lista puede estar oculta y para lanzar el formulario se podr hacer por cualquier mtodo que desee.
:: Descarga el ejemplo
Por qu tantos formatos
2.- Copiar la informacin tal y como esta en la siguiente imagen en la hoja de nombre Datospara que llevemos los pasos
exactos.
3.- Seleccionamos el
rango B3:E3 y le colocamos el nombre de CIUDADES, ya que este ser los datos generales que filtraremos, es decir seran los
mandantes,
al
seleccionar
uno
de
ellos
debe
mostrarnos
su
lista
de Distritos.
4.- Ahora vamos a hacer la parte mas importante de todo el proceso, seleccionamos el rangoB4:B9 y le colocamos el nombre de la
ciudad en
este
caso TRUJILLO y
pulsamos
enter, asi
como
lo
muestra
la
siguiente
imagen:
5.- Procedemos a hacer lo mismo con el resto de la informacin, voy a explicar uno mas ya el resto lo hacen ustedes, seleccionamos
el rango c4:c10 y le colocamos el nombre de la ciudad en este caso LIMA, pulsamos enter; lo mismo hacemos con el resto
mismos colores).
vamos
al
menu
Datos->Validacin
Seguro
te
estas
preguntando
que
significa=INDIRECTO($D$2), en la celda D2 debes recordar que ahi esta el mandante es decir la CIUDAD, que obviamente cambiar
segun la que tu quieres, pues esta formula lo que hace es referenciar al nombre del rango que contiene la informacn, si en D2
dice TRUJILLO, entonces se validaran los datos correspondientes al rango llamado TRUJILLO; asi de acuerdo a los valores del
mandante.
9.- Deberia quedar asi:
HASTA AQUI HEMOS TERMINADO PERO SI ERES AMANTE DE EXCEL Y QUIERES MAS SIGUE LEYENDO.
10.- Y para darle un toque profesional viene mi creacin, si se fijan al cambiar las ciudades queda el rastro del datos consultado
anterior correspondiente a otra ciudad, por ejemplo si seleccionan TRUJILLO y antes estuvieron viendo los distritos de otra ciudad
este aparecera ahi y puede crear confusin, por tanto haremos lo siguiente (No dorm pensando en esta solucin)
2.
Lo ms importante a tener en cuenta es que el dato que buscaremos, el cual debe ser nico, en este caso el cdigo, debe estar en
la primera columna a la izquierda.
2.- A continuacin, en una nueva hoja, construiremos el interfaz de nuestro buscador, el cual podemos hacer mediante la edicin
y colorizacin de las celdas, quedando algo as:
La celda blanca superior, al lado del texto Ingrese cdigo a buscar es donde ingresaremos el dato que buscaremos en nuestra hoja
de detalle, y las celdas inferiores blancas es donde aparecer la informacin correspondiente a la misma fila.
3.- Ahora, nos desplazamos a la celda blanca justo al lado del nombre, y procedemos a escribir la formula para la bsqueda. Como
mencionamos antes, utilizaremos la funcin buscarv de Excel, la cual utiliza los siguientes parmetros:
Matriz buscar en: Representa la matriz de datos en donde buscaremos el parmetro, o sea, el grupo de datos que se
encuentra en la otra hoja. Lo ms importante a tener en cuenta es que en este rango de matriz debemos.
Indicador columnas: Representa la columna donde esta el dato que recuperaremos. Estas columnas se ordenan
numricamente del 1 en adelante. Como el nombre es la segunda columna, ponemos el nmero 2.
Ordenado: Indica el criterio de bsqueda. Puede tomar 2 valores: Verdadero o Falso. La diferencia radica en que Verdadero se
refiere a una bsqueda aproximada y Falso a una bsqueda exacta. Utilizaremos falso, ya que queremos buscar el cdigo
exacto.
Esto es normal, ya que como no hemos ingresado un dato a buscar, no hay referencia a recuperar.
5.- Luego copiamos la formula a las otras celdas, cambiando el indicador de columna a la que corresponde en la matriz de datos y
deberamos tener algo como esto en las formulas:
=BUSCARV(E3;Hoja1!A2:E10;2;FALSO)
=BUSCARV(E3;Hoja1!A2:E10;3;FALSO)
=BUSCARV(E3;Hoja1!A2:E10;4;FALSO)
=BUSCARV(E3;Hoja1!A2:E10;5;FALSO)
Y en cada celda se debera haber puesto el valor #N/A.
6.- A continuacin llega el momento de probar. En la parte superior ingresamos un cdigo y podemos ver como se llenan los datos:
Con eso tenemos nuestro buscador funcionando. Sin embargo, algunos tips de seguridad.
Si el buscador lo estamos habilitando para otras personas y no queremos que vean la matriz completa de datos ni que puedan
modificar las formulas, podemos aplicar los siguientes trucos.
Ocultando la matriz de datos
Simplemente hacemos click con el botn derecho sobre la hoja donde estn los datos y seleccionamos la opcin Ocultar.
Ah seleccionamos las opciones que le permitiremos ejecutar a los usuarios. En este caso solo les permitiremos seleccionar las
celdas desbloqueadas. Adicionalmente definimos una contrasea para que la hoja no pueda ser desbloqueada a no ser que sea por
nosotros.
Nos pedir confirmar la contrasea y tendremos nuestra hoja bloqueada.
Y ah podremos ver que es imposible seleccionar las celdas bloqueadas. Por ende no podrn modificar las formulas y solo ingresar
los cdigos. No se preocupen, que las celdas que muestran los datos funcionarn de forma normal.
Y as finalizamos nuestro buscador en Excel, el cual nos permitir disponer de una sencillaaplicacin para los casos en que
necesitemos generar algo rpidamente.
Como siempre este tutorial ha sido:
Cualquier duda o comentario que puedan tener, los invitamos a dejarnos unas lneas en el rea habilitada a continuacin.
Esperamos que este tutorial haya sido de utilidad para Uds.
Muchas gracias por leer y ser hasta una prxima oportunidad.