Filtro avanzado y posterior selección de celdas en Excel

28/08/2007 - 21:28 por miguel p | Informe spam
Estimados compañeros:
Habiendo llevado a cabo un filtro avanzado
a partir del cual queda filtrada en todos los casos una fila del archivo, ¿
como puedo lograr la selección de una celda determinada de dicha fila
introduciendo códigos de Visual Basic en la macro que maneja dicho filtro?
Desde ya, muchas gracias.

Miguel
No te des por vencido

Preguntas similare

Leer las respuestas

#1 AnSanVal
29/08/2007 - 00:09 | Informe spam
[celda determinada]. select

Saludos desde Tenerife (Islas Canarias).
"miguel p" escribió en el mensaje
news:
Estimados compañeros:
Habiendo llevado a cabo un filtro
avanzado
a partir del cual queda filtrada en todos los casos una fila del archivo,
¿
como puedo lograr la selección de una celda determinada de dicha fila
introduciendo códigos de Visual Basic en la macro que maneja dicho filtro?
Desde ya, muchas gracias.

Miguel
No te des por vencido
Respuesta Responder a este mensaje
#2 Héctor Miguel
29/08/2007 - 04:21 | Informe spam
hola, miguel !

Habiendo llevado a cabo un filtro avanzado a partir del cual queda filtrada en todos los casos una fila del archivo
como puedo lograr la seleccion de una celda determinada de dicha fila
introduciendo codigos de Visual Basic en la macro que maneja dicho filtro?



si necesitas alguna propuesta mas... *concreta*... sera necesario que expongas detalles mas... *precisos* ;)

si solo quieres saber +/- *por donde* tirar la macro... usa alguna [o varias] de las siguientes
- indicale al codigo cual es la relacion entre la fila de la *determinada celda* y los titulos y/o el rango con el filtro avanzado
- confirma que existan datos que cumplan con el/los criterio/s aplicado/s
- revisa cuantas areas [y filas en cada area] resultan despues de aplicado el filtro
- selecciona la *determinada celda* ANTES de que muestres el rango sin filtros aplicados
- toma en cuenta que el rango que se reporta para los filtros avanzados es el rango al que lo aplicas [determinado o columna completa]
- etc. etc. etc.

saludos,
hector.
Respuesta Responder a este mensaje
#3 miguel p
30/08/2007 - 06:08 | Informe spam
Hola Héctor Miguel
Agradezco tu respuesta, aclarándote que soy neófito en la utilización de
esta vía de consulta.
Los detalles del tema, que omití en la oportunidad anterior, son los
siguientes:
Se trata de un archivo de Clientes ubicado en una Hoja de un Libro de Excel.
El archivo cuenta con varias columnas (campos), siendo la primera Código del
Cliente.
El objetivo es lograr información referida a un campo de un cliente
determinado.
Para ello utilizo el siguiente procedimiento:

1) Utilizo una primera macro que lleva a cabo un filtrado avanzado, mediante
la inserción aleatoria del código del cliente a seleccionar en la celda
correspondiente del Rango de Criterios, lo cual permite filtrar el registro
correspondiente a dicho cliente. Una vez llevado a cabo el filtrado, no queda
seleccionada ninguna celda del registro. Por lo expuesto en el párrafo
anterior, debo seleccionar manualmente la celda correspondiente a Código del
Cliente y ejecutar una segunda macro que traslada la información de ciertos
campos a otro sector de la Hoja.
2) De acuerdo a lo anterior, el procedimiento abarca dos macros y una
selección manual.
3) Las macros que utilizo son una combinación del procedimiento habitual de
creación de macros sumado a la incorporación de códigos en Visual Basic que
mejorar el rendimiento de la planilla.
Con el objeto de mejorar el procedimiento, me interesaría conocer si es
posible incorporar a las macros códigos que posibiliten la activación
automática de la celda de Código del Cliente en la fila (registro) obtenida a
partir del filtro, de manera tal que hagan innecesaria la selección manual,
lo que traería aparejado la simplificación de tareas, ya que sería posible
utilizar tan sólo una macro para obtener igual resultado.
Agradezco desde ya la ayuda que puedas prestarme y te hago llegar mi
afectuoso saludo.

Miguel - Córdoba (R.A.)


"Héctor Miguel" escribió:

hola, miguel !

> Habiendo llevado a cabo un filtro avanzado a partir del cual queda filtrada en todos los casos una fila del archivo
> como puedo lograr la seleccion de una celda determinada de dicha fila
> introduciendo codigos de Visual Basic en la macro que maneja dicho filtro?

si necesitas alguna propuesta mas... *concreta*... sera necesario que expongas detalles mas... *precisos* ;)

si solo quieres saber +/- *por donde* tirar la macro... usa alguna [o varias] de las siguientes
- indicale al codigo cual es la relacion entre la fila de la *determinada celda* y los titulos y/o el rango con el filtro avanzado
- confirma que existan datos que cumplan con el/los criterio/s aplicado/s
- revisa cuantas areas [y filas en cada area] resultan despues de aplicado el filtro
- selecciona la *determinada celda* ANTES de que muestres el rango sin filtros aplicados
- toma en cuenta que el rango que se reporta para los filtros avanzados es el rango al que lo aplicas [determinado o columna completa]
- etc. etc. etc.

saludos,
hector.



Respuesta Responder a este mensaje
#4 Héctor Miguel
30/08/2007 - 06:43 | Informe spam
hola, miguel !

Se trata de un archivo de Clientes... en una Hoja... con varias columnas... la primera Codigo del Cliente.
El objetivo es lograr informacion referida a un campo de un cliente determinado.
Para ello utilizo el siguiente procedimiento:
... una primera macro... un filtrado avanzado... insercion aleatoria del codigo del cliente... en...el Rango de Criterios
... llevado a cabo el filtrado... debo seleccionar manualmente la celda correspondiente a Codigo del Cliente
... ejecutar una segunda macro que traslada la informacion de ciertos campos a otro sector de la Hoja...



si expones los codigos de ambas macros, es posible que se pueda *aligerar* el procedimiento...
-> SIN que exista la *necesidad* de seleccionar alguna celda y [probablemente] SIN efectuar filtros avanzados ;)

-> solo se necesita conocer [de preferencia, +/- exactamente] -> referencias a celdas/rangos/hojas/... -nombres- de:
- el rango de tu listado
- como [y/o de donde] se obtiene el criterio *aleatorio*
- cuales con los *ciertos campos/columnas* que se van a trasladar
- cual es el *otro sector* de la hoja [y donde se debe poner el resultado]

saludos,
hector.
Respuesta Responder a este mensaje
#5 miguel p
30/08/2007 - 15:58 | Informe spam
Héctor
Te mando los códigos de las macros y algunas aclaraciones.Afectuosos saludos.
Range("A11:K506").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("A8:A9"), Unique:=False

Sub Clientes_PrepBusq()
'
' Clientes_PrepBusq Macro
' Macro grabada el 18/04/2006 por Diego
'
' Acceso directo: CTRL+i
'
Sheets("CLIENTES").Select
Range("A11:K506").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("A6:A7"), Unique:=False
End Sub

En la celda A7 introduzco, en forma aleatoria y desde otra celda relacionada
con esta, el Código de Cliente que quiero seleccionar.

Una vez efectuado el filtrado, selecciono manualmente la celda con el Código
del Cliente y ejecuto la siguiente macro.

Sub SelecClientes()
'
' SelecClientes Macro
' Macro grabada el 20/08/2007 por Miguel
'
' Acceso directo: Ctrl+Mayús+S
'
Sheets("CLIENTES").Select
Selection.Copy
Range("F1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

cliente = Range("G1").Value
usuario = Range("E1").Value
If usuario = "RI" And cliente = "RI" Then
Application.Run "Facturación.xls!FacturaA"
Else

If usuario = "RI" And cliente <> "RI" Then
Application.Run "Facturación.xls!FacturaB"
Else

If usuario <> "RI" Then
Application.Run "Facturación.xls!FacturaC"
End If
End If
End If
Selection.Copy

End Sub

El contenido de la celda F1 es la posición del Usuario ante el I.V.A.(RI,
RNI, M)
El contenido de la celda G1 es la posición del Cliente ante el I.V.A.(RI,
RNI, M, CF)
El contenido de la celda F1 es la posición del Usuario ante el I.V.A.(RI,
RNI, M)



Miguel - Córdoba (R.A.)


"Héctor Miguel" escribió:

hola, miguel !

> Se trata de un archivo de Clientes... en una Hoja... con varias columnas... la primera Codigo del Cliente.
> El objetivo es lograr informacion referida a un campo de un cliente determinado.
> Para ello utilizo el siguiente procedimiento:
> ... una primera macro... un filtrado avanzado... insercion aleatoria del codigo del cliente... en...el Rango de Criterios
> ... llevado a cabo el filtrado... debo seleccionar manualmente la celda correspondiente a Codigo del Cliente
> ... ejecutar una segunda macro que traslada la informacion de ciertos campos a otro sector de la Hoja...

si expones los codigos de ambas macros, es posible que se pueda *aligerar* el procedimiento...
-> SIN que exista la *necesidad* de seleccionar alguna celda y [probablemente] SIN efectuar filtros avanzados ;)

-> solo se necesita conocer [de preferencia, +/- exactamente] -> referencias a celdas/rangos/hojas/... -nombres- de:
- el rango de tu listado
- como [y/o de donde] se obtiene el criterio *aleatorio*
- cuales con los *ciertos campos/columnas* que se van a trasladar
- cual es el *otro sector* de la hoja [y donde se debe poner el resultado]

saludos,
hector.



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida