Hoy veremos un uso bastante cómodo de los procedimientos Sub, que consiste en definir tantos parámetros como necesitemos.
En el ejemplo del día aprovecharemos la selección realizada sobre un ListBox para ejecutar un procedimiento Sub que trata la información aportada por ese ListBox.
Tenemos el siguiente cuadro de información de diferentes empresas de un grupo para ciertos años:
la idea es construir un UserForm para desde él, seleccionar una de las empresas y que se resalten los datos correspondientes...
Construimos un simple UserForm con dos controles:
1- un ListBox1
2- un commandButton1 para Salir de él.
La carga de código de este formulario es:
Este es el aspecto del userform al mostrarlo:
La parte de programación interesante es la siguiente... que hemos insertado en un Módulo estándar:
Donde hemos definido un parámetro dentro del proceso Sub ResaltaDatos- 'empresa', que utilizamos como haríamos con cualquier variable.
La diferencia es que en este caso la cargamos de información desde el evento _click del Listbox, indicando que el valor de esta variable será el elegido del desplegable del ListBox1:
Call Módulo1.ResaltaDatos(ListBox1.Value)
El efecto es claramente el buscado, al seleccionar las diferentes empresas, se van resaltando...
En el ejemplo del día aprovecharemos la selección realizada sobre un ListBox para ejecutar un procedimiento Sub que trata la información aportada por ese ListBox.
Tenemos el siguiente cuadro de información de diferentes empresas de un grupo para ciertos años:
la idea es construir un UserForm para desde él, seleccionar una de las empresas y que se resalten los datos correspondientes...
Construimos un simple UserForm con dos controles:
1- un ListBox1
2- un commandButton1 para Salir de él.
La carga de código de este formulario es:
Private Sub UserForm_Initialize() 'Cargamos el formulario con datos UserForm1.ListBox1.RowSource = "A2:A10" End Sub Private Sub ListBox1_Click() 'asociamos el evento para al hacer click llamar a la macro Call Módulo1.ResaltaDatos(ListBox1.Value) End Sub Private Sub CommandButton1_Click() 'descargamos el userForm1 para Salir Unload UserForm1 End Sub
Este es el aspecto del userform al mostrarlo:
La parte de programación interesante es la siguiente... que hemos insertado en un Módulo estándar:
Sub ResaltaDatos(empresa) 'comenzamos quitando el formato anterior Range("B2:D10").Interior.Color = xlNone 'Buscamos la fila que corresponde a la empresa seleccionada 'con el ListBox With Worksheets(1).Range("A1:A10") Set c = .Find(empresa, LookIn:=xlValues) If Not c Is Nothing Then firstAddress = c.Address Do fila = c.Row 'fila buscada Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> firstAddress End If End With 'aplicamos un formato de color de fondo Range("B" & fila & ":D" & fila).Interior.Color = vbCyan End Sub
Donde hemos definido un parámetro dentro del proceso Sub ResaltaDatos- 'empresa', que utilizamos como haríamos con cualquier variable.
La diferencia es que en este caso la cargamos de información desde el evento _click del Listbox, indicando que el valor de esta variable será el elegido del desplegable del ListBox1:
Call Módulo1.ResaltaDatos(ListBox1.Value)
El efecto es claramente el buscado, al seleccionar las diferentes empresas, se van resaltando...
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.