AutoFilter mediante VBA

22/03/2005 - 20:05 por SG Web Design - Sergio Gattelet | Informe spam
Hola Grupo,

Quisiera saber si es posible el empleo de AutoFilter o AutoFilter Avanzado
para ejecutarlo por medio de vba y filtrar de esta manera una lista de
articulos.

Viendo todas las posibilidades creo que el uso de autofilter es lo mas
apropiado para mostrar las coincidencias de un campo determinado.

Sergio.

Preguntas similare

Leer las respuestas

#11 Héctor Miguel
24/03/2005 - 04:49 | Informe spam
hola, chicos !

Sergio Gattelet escribio en el mensaje ...
... entiendo lo... de los indices en vba... en vb tambien existe
... lo que ademas vb ofrece es la posibilidad de crear matrices de controles
... trabajar de manera de grupos por la explicacion que te detallaba anteriormente.



de tu mensaje anterior, 'deduzco' que [aun en vb/stand-alone] es necesario 'barrer' cada uno de los controles -?-
[lo que no se es si en vb/stand-alone sea posible que estuvieran 'marcados/seleccionados' al mismo tiempo] -?-
aunque vba no contempla 'todas' las caracteristicas y bondades de vb/stand-alone...
para 'agrupar' tus botones de opcion, puedes usar la propiedad 'GroupName' [botones que se auto-excluyen]
por si te pudiera servir de algo, pego al final una consulta 'similar' de dic-2004.

si cualquier duda [o informacion adicional]... comentas?
saludos,
hector.
consulta 'original' de Ignacio... y propuesta de 'solucion' ==> ...¿Como averiguo la cantidad de OptionButton.GroupName que hay en un formulario
... para meter los valores en una Array?.



siguiendo una 'secuencia logica' de eventos, te expongo la forma 'larga' [ya encontraras la forma de 'adelgazarla']
=> al inicializarse el formulario...
1.- 'barrer' TODOS los controles del formulario 'buscando' SOLO los que sean 'OptionButton'
2.- 'llenar' una coleccion con los [posibles] 'GroupNames' a los que 'pertenezca' cada control
=> en el momento en que sea necesario 'detectar' los optionbuttons 'activos' de cada grupo...
1.- 'barrer' los 'GroupNames' [y por cada grupo]...
2.- 'barrer' [nuevamente] los controles 'buscando CUAL opcion de cada grupo esta 'seleccionado'
3.- 'al tiempo' que vas 'llenando' una matriz con cada seleccion [o si ninguna ha sido] 'activada'

el siguiente ejemplo muestra 'el resultado' al pulsar un 'CommandButton1' en el formulario.
si cualquier duda... comentas?
saludos,
hector.
en el modulo de codigo del formulario ==Dim Ctr As Control, Grupos As New Collection, Grupo As Integer, Opciones() As String
Private Sub UserForm_Initialize()
For Each Ctr In Me.Controls
If TypeName(Ctr) = "OptionButton" Then
On Error Resume Next
If Ctr.GroupName <> "" Then Grupos.Add Ctr.GroupName, CStr(Ctr.GroupName)
End If: Next
End Sub
Private Sub CommandButton1_Click(): ReDim Opciones(Grupos.Count)
For Grupo = 1 To Grupos.Count: Opciones(Grupo - 1) = "Ninguno"
For Each Ctr In Me.Controls
If TypeName(Ctr) = "OptionButton" Then
If Ctr.GroupName = Grupos.Item(Grupo) And Ctr Then
Opciones(Grupo - 1) = Ctr.Name: Exit For
End If: End If: Next: Next
For Grupo = 1 To Grupos.Count
MsgBox Grupos.Item(Grupo) & " - " & Opciones(Grupo - 1)
Next
End Sub
Respuesta Responder a este mensaje
#12 KL
24/03/2005 - 07:30 | Informe spam
Hola chicos,

Creo que en mi respuesta anterior me habia concentrado mas en el problema de
hacer un bucle que pueda devolver las propiedades de los controles usando su
indice.

La otra forma de crear arrays de controles es por medio de un class module.
Aqui encontraras un buen ejemplo:
http://www.vbusers.com/downloads/do...asp#item13

Y tambien un ejemplo de uso de Array en vez de Collection:
http://www.j-walk.com/ss/excel/tips/tip44.htm

Saludos,
KL


"SG Web Design - Sergio Gattelet" wrote in message
news:
ok, entiendo lo que decis de los indices en vba y te dire que en vb
tambien
existe la misma posibilidad de realizarlos. Lo que ademas vb ofrece es la
posibilidad de crear matrices de controles para que se puedan trabajar de
manera de grupos por la explicacion que te detallaba anteriormente.

Saludos
Sergio


"KL" escribió en el mensaje
news:OeloL$$
Hola Sergio,

> ...De esta manera realizando un bucle se puede cononcer las propiedades


de
> cada
> uno de ellos y no por separado como pasa con VBA.
> es asi, que les vamos a hacer...

Creo que te equivocas respecto a las posibilidades de VBA en este area.
Aunque no se hace exactamente de la misma manera que en VB, el principio


(el
uso de la coleccion de objetos con su respectivo indice) es el mismo y la
sintaxis es bastante parecida, y si no, revisa los siguientes macros.

Saludos,
KL

Sub Test1()
Dim ctrl As Control
For Each ctrl In UserForm1.Controls
Debug.Print ctrl.Name
Next ctrl
End Sub

Sub Test2()
Dim n As Integer
For n = 0 To UserForm1.Controls.Count - 1
Debug.Print UserForm1.Controls.Item(n).Name
Next n
End Sub

Sub Test3()
Dim n As Integer
For n = 0 To UserForm1.Controls.Count - 1
If TypeOf UserForm1.Controls.Item(n) _
Is msforms.CommandButton Then
Debug.Print UserForm1.Controls.Item(n).Name
End If
Next n
End Sub







email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida