Incapaz - Validacion sobre BdD

16/09/2005 - 11:09 por faico | Informe spam
Me estoy volviendo loco,
KL me he revisado los enlaces de validacion que me enviaste pero el
problema radica en que toda lista de validacion se encuantra
ordenada!!!

Es posible conseguir la lista y que se filtre segun el expediente que
tecleo?
Alguien sabe como filtrar (avanzado) una base de datos permanetemente,
es decir que dependiendo de lo que ponga en el criterio se filtre de
una manera u otra?
El ejemplo concreto es

Tecleo el num de expediente en la A1 y en la B1 debe aparecer la lista
desplegable para los productos de ese expediente. El problema esta que
en la base de datos (digamos que esta en D (expediente) y E(productos))
los numeros de expediente no estan ordenados ya que la BdD se actualiza
manualmente cada vez que se da de alta un producto. Asi que un
expediente puede aparecer varias veces en la columna D con diferentes
productos en la columna E

Igualmente no puedo hacer nada con buscarv porque solo encuentra el
primer producto...

Alguien tiene alguna idea?
Muchas gracias de antemano!

Saludos
Faico

Preguntas similare

Leer las respuestas

#6 faico
17/09/2005 - 19:07 | Informe spam
Era lo del rango, habia nombrado a la base de datos BdD y no lo
reconocia el filtro... jeje
Muchas muchas gracias de nuevo KL. No te puedes ni imaginar lo que he
aprendido este año gracias a este grupo (con las aportaciones
solidarias como la tuya o Hector Miguel)

Como se puede colgar un doc en una pag web para poder ponerlo aqui,
creo que tiene miga y seguro que a alguien le puede venir bien.

A ver si entre hoy y mañana lo termino...
Estoy por bautizarlo... porque ya con las horas que llevo encima se
puederia considerar de la familia :)

Saludos!
Faico
Respuesta Responder a este mensaje
#7 faico
17/09/2005 - 20:00 | Informe spam
Creo que todavia no lo he terminado...

Es posible que la macro que tengo:

Const hojaMaster = "Horario"
Const hojaListas = "Filtros"
Const hojaDatos = "BdD"

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
Select Case Sh.Name
Case hojaDatos
If Not Intersect(Target, Sheets(hojaDatos).Range("A:B")) _
Is Nothing Then ActualizarLista
Case hojaMaster
If Not Intersect(Target, Sheets(hojaMaster).Range("F2")) _
Is Nothing Then
ActualizarLista
With Sheets(hojaMaster).Range("J2")
.Value = ""
.Select
SendKeys "%{Down}"
End With
End If
End Select
End Sub

Private Sub ActualizarLista()
Dim rngInicio As Range, rngCriterio As Range

Application.ScreenUpdating = False
With Sheets(hojaListas)
Set rngCriterio = .Range("a1:a2")
Set rngInicio = .Range("a4")
End With

rngInicio.CurrentRegion.Clear

Sheets(hojaDatos).Range("Rango").AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=rngCriterio, _
CopyToRange:=rngInicio, _
Unique:=True
rngInicio.Sort _
Key1:=rngInicio.Offset(, 1), _
Order1:=xlAscending, _
Header:=xlGuess, _
Orientation:=xlTopToBottom
Application.ScreenUpdating = True
End Sub

La cual esta diseñada para poner el numero de expediente en F2 y me de
la lista deplegable de productos en J2 (una vez filtrada la base de
datos). Pero ahora pense en poner esta macro tantas veces necesitara
listas desplegables... pero me da error de nombre ambiguo.
Seria posible crear alguna macro conjunta para que si pusiera el
expediente en F2 me diara la lista en J2, si pusiera el otro expediente
en F3 me diera su lista en J3 y asi sucesivamente hasta F27, donde
pondria el num de expediente y conseguiria la lista de productos en
J27?

Espero que tenga algun remedio esta ultima idea lanzada...

Gracias

Saludos
Faico
Respuesta Responder a este mensaje
#8 KL
17/09/2005 - 21:46 | Informe spam
Hola faico,

En este caso las soluciones que te he ofrecido no creo que valgan (o al
menos serian muy pesadas para tu archivo) ya que habria que crear tantas
listas como expedientes (?27?). Se como hacer lo que dices, pero necesito un
poco de tiempo. Tampoco estaria mal que me envies tu archivo al
quitando NOSPAM y PLEASE.

Saludos,
KL


"faico" wrote in message
news:
Creo que todavia no lo he terminado...

Es posible que la macro que tengo:

Const hojaMaster = "Horario"
Const hojaListas = "Filtros"
Const hojaDatos = "BdD"

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
Select Case Sh.Name
Case hojaDatos
If Not Intersect(Target, Sheets(hojaDatos).Range("A:B")) _
Is Nothing Then ActualizarLista
Case hojaMaster
If Not Intersect(Target, Sheets(hojaMaster).Range("F2")) _
Is Nothing Then
ActualizarLista
With Sheets(hojaMaster).Range("J2")
.Value = ""
.Select
SendKeys "%{Down}"
End With
End If
End Select
End Sub

Private Sub ActualizarLista()
Dim rngInicio As Range, rngCriterio As Range

Application.ScreenUpdating = False
With Sheets(hojaListas)
Set rngCriterio = .Range("a1:a2")
Set rngInicio = .Range("a4")
End With

rngInicio.CurrentRegion.Clear

Sheets(hojaDatos).Range("Rango").AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=rngCriterio, _
CopyToRange:=rngInicio, _
Unique:=True
rngInicio.Sort _
Key1:=rngInicio.Offset(, 1), _
Order1:=xlAscending, _
Header:=xlGuess, _
Orientation:=xlTopToBottom
Application.ScreenUpdating = True
End Sub

La cual esta diseñada para poner el numero de expediente en F2 y me de
la lista deplegable de productos en J2 (una vez filtrada la base de
datos). Pero ahora pense en poner esta macro tantas veces necesitara
listas desplegables... pero me da error de nombre ambiguo.
Seria posible crear alguna macro conjunta para que si pusiera el
expediente en F2 me diara la lista en J2, si pusiera el otro expediente
en F3 me diera su lista en J3 y asi sucesivamente hasta F27, donde
pondria el num de expediente y conseguiria la lista de productos en
J27?

Espero que tenga algun remedio esta ultima idea lanzada...

Gracias

Saludos
Faico
Respuesta Responder a este mensaje
#9 faico
18/09/2005 - 12:46 | Informe spam
El archivo ha sido enviado,

Muchas gracias de nuevo,

Saludos
Faico
Respuesta Responder a este mensaje
#10 faico
18/09/2005 - 21:19 | Informe spam
KL al fin he conseguido lo que queria!!!

Dime como puedo colgar el archivo en un enlace y lo pongo por aqui para
que alguien lo use como idea... Creo que no esta nada mal :):)

Muchas gracias por el esfuerzo por tu parte. De todas maneras si has
encontrado tu algo que creas interesante no dudes en comentarlo ;)

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