Filtrar base de Datos

24/08/2004 - 22:52 por Victor Manuel | Informe spam
Hector:

Te agradezco la respuesta, pero eso ya lo se manejar, lo
que yo deseo es lo siguiente:

mi facturacion detallada es asi (como ejemplo)

en las columnas las tengo asi: Factura, codigo, nombre,
importe, fecha.

y en las filas los datos de cada una, como podras darte
cuenta, puedo tener en la fila 1 al cliente "X" en la fila
2 al cliente "Y" y en la fila 3 al cliente "X".

lo que deseo es que en una nueva hoja tener unicamente los
registros del cliente X, una forma es poner condicionantes
en la nueva hoja, pero me quedan lineas en blanco cuando
no coincide el codigo del cliente, entonces tengo
que "ocultar" las filas vacias, para que, al momento de
imprimir no salgan las filas vacias, mi pregunta es ¿como
puedo ocultar las filas de manera automatica?.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
25/08/2004 - 04:52 | Informe spam
hola, Victor Manuel !

... eso ya lo se manejar ... en una nueva hoja tener unicamente los registros del cliente X
... una forma es poner condicionantes ... pero me quedan lineas en blanco
... entonces tengo que "ocultar" las filas vacias [...]
... ¿como puedo ocultar las filas de manera automatica?.



- una opcion seria aplicar autofiltros al rango 'de extraccion' y mostrar solo las 'no vacias'
- otra pudiera ser a traves de macros [p.e.]
-> haciendo un 'barrido' por el rango 'de extraccion' y ocultar la fila cuyo dato extraido sea "" o 0 [?]
-> ocultando las filas que 'excedan' el numero de registros 'encontrados' del cliente X [¿usando contar.si?]
-> las macros podrias 'automatizar' el proceso [p.e. mediante los eventos] o 'simplemente'... 'a peticion' ;)
-> [???]

saludos,
hector.
Respuesta Responder a este mensaje
#2 David Canales
25/08/2004 - 10:04 | Informe spam
No se si has probado resolver lo que necesitas creando una Tabla Dinamica. Si
acaso no lo has considerado como alternativa mira estos dos links:

http://usuarios.lycos.es/cursoexcel2000/d4.htm
http://www.cybercursos.net/cursos-o...ablasd.htm

En el area de Filas puedes poner en este orden los campos Codigo, Nombre,
Factura y Fecha. En el area de Datos pones Importe. La TD te agrupara por Codigo
de cliente y despues filtras el cliente que quieres.

Saludos,

David Canales


"Héctor Miguel" wrote in message
news:
hola, Victor Manuel !

> ... eso ya lo se manejar ... en una nueva hoja tener unicamente los


registros del cliente X
> ... una forma es poner condicionantes ... pero me quedan lineas en blanco
> ... entonces tengo que "ocultar" las filas vacias [...]
> ... ¿como puedo ocultar las filas de manera automatica?.

- una opcion seria aplicar autofiltros al rango 'de extraccion' y mostrar solo


las 'no vacias'
- otra pudiera ser a traves de macros [p.e.]
-> haciendo un 'barrido' por el rango 'de extraccion' y ocultar la fila cuyo


dato extraido sea "" o 0 [?]
-> ocultando las filas que 'excedan' el numero de registros 'encontrados'


del cliente X [¿usando contar.si?]
-> las macros podrias 'automatizar' el proceso [p.e. mediante los eventos] o


'simplemente'... 'a peticion' ;)
-> [???]

saludos,
hector.

Respuesta Responder a este mensaje
#3 Victor Manuel
25/08/2004 - 19:24 | Informe spam
hola, Victor Manuel !

... eso ya lo se manejar ... en una nueva hoja tener




unicamente los registros del cliente X
... una forma es poner condicionantes ... pero me




quedan lineas en blanco
... entonces tengo que "ocultar" las filas vacias [...]
... ¿como puedo ocultar las filas de manera automatica?.



- una opcion seria aplicar autofiltros al rango 'de


extraccion' y mostrar solo las 'no vacias'
- otra pudiera ser a traves de macros [p.e.]
-> haciendo un 'barrido' por el rango 'de extraccion' y


ocultar la fila cuyo dato extraido sea "" o 0 [?]
-> ocultando las filas que 'excedan' el numero de


registros 'encontrados' del cliente X [¿usando contar.si?]
-> las macros podrias 'automatizar' el proceso [p.e.


mediante los eventos] o 'simplemente'... 'a peticion' ;)
-> [???]

saludos,
hector.

.




Hector:

Agradezco tu pronta respuesta, pero como te daras cuenta
no se como hacerlo de forma automatica, me agrado y
convence lo que mencionas de " haciendo un 'barrido' por
el rango 'de extraccion' y ocultar la fila cuyo dato
extraido sea "" o 0 " eso es precisamente lo que quiero
hacer, pero de manera automatica. ¿podrias decirme como?
esta es el orden en que me gustaria hacerlo:

1. Seleccionar el rango <-- esto lo puedo hacer de forma
manual o definir el rango con un nombre
2. ejecutar la macro para ocultar filas vacias <-- aqui
entran tus conocimientos para hacer el barrido y la macro
3. imprimir mi reporte <-- esto yo lo hago
4. ejecutar macro para mostrar nuevamente las filas
ocultas <-- aqui entran tus conocimientos para hacer la
macro y mostrar las filas ocultas

esperando que me puedas ayudar, te lo agradezco.
Respuesta Responder a este mensaje
#4 Héctor Miguel
26/08/2004 - 08:18 | Informe spam
hola, Victor Manuel !

... un 'barrido' por el rango 'de extraccion' y ocultar la fila cuyo dato extraido sea "" o 0 "
... es precisamente lo que quiero ... de manera automatica ... el orden en que me gustaria hacerlo:
1. Seleccionar el rango <-- esto lo puedo hacer de forma manual o definir el rango con un nombre
2. ejecutar la macro para ocultar filas vacias [...]
3. imprimir mi reporte <-- esto yo lo hago
4. ejecutar macro para mostrar nuevamente las filas ocultas [...]



-> estoy suponiendo que tienes...
- una hoja llamada 'Resumen'
- [en ella] un rango 'de extraccion' llamado 'Datos.Cliente' de X_filas × Y_columnas
-> este seria el rango 'preparado' [incluidos los 'vacios'] para volcar los datos 'encontrados' del cliente_X <-
- [opcionalmente] una celda [llamada 'Registros'] para 'contar' el numero de 'datos encontrados' del cliente_X
p.e. usando una formula 'del tipo' de =contar.si(NombresClientesBD,ClienteSolicitado)
-> estoy usando las 'formas largas' de hacer referencia a hojas/rangos[nombres]/filas/etc.
[para que puedas ejecutar las macros 'desde cualquier' hoja y 'analizar' diferentes 'comportamientos'] ;)
-> podrias usar las macros en eventos [para automatizar las tareas]
[por lo pronto... estoy ejemplificando la forma en que NO hay celdas vacias 'intermedias'] :-)

si cualquier duda o requieres ayuda [o tienes informacion] adicional... ¿comentas?
saludos,
hector.
en un modulo de codigo 'normal' ==Sub MostrarTodo() ' para mostrar las filas que 'estaban' ocultas
Worksheets("Resumen").Range("Datos.Cliente").EntireRow.Hidden = False
End Sub
Sub Barrer_Ocultar() ' en caso de que el rango 'de extraccion' tenga 'vacios intermedios'
Dim Fila As Integer
Application.ScreenUpdating = False
With Worksheets("Resumen").Range("Datos.Cliente")
For Fila = 1 To .Rows.Count
.Range("a" & Fila).EntireRow.Hidden = (.Range("a" & Fila) = "")
Next
End With
End Sub
Sub MostrarSoloLlenas() ' en caso de que quieras usar el 'conteo' de datos 'encontrados'
Dim Registros As Integer
MostrarTodo
With Worksheets("Resumen")
Registros = .Range("Registros")
With .Range("Datos.Cliente")
Range(.Range("a" & Registros + 1), .Range("a" & .Rows.Count)) _
.EntireRow.Hidden = True
End With
End With
End Sub
en el modulo de codigo de 'la hoja' ==Private Sub Worksheet_Calculate() ' por si quieres mantener visibles solo los datos 'encontrados'
MostrarSoloLlenas
End Sub
Respuesta Responder a este mensaje
#5 Victor Manuel
07/09/2004 - 01:11 | Informe spam
-> estoy suponiendo que tienes...
- una hoja llamada 'Resumen'
- [en ella] un rango 'de extraccion'


llamado 'Datos.Cliente' de X_filas × Y_columnas
-> este seria el rango 'preparado' [incluidos


los 'vacios'] para volcar los datos 'encontrados' del
cliente_X <-
- [opcionalmente] una celda [llamada 'Registros']


para 'contar' el numero de 'datos encontrados' del
cliente_X
p.e. usando una formula 'del tipo' de =contar.si


(NombresClientesBD,ClienteSolicitado)
-> estoy usando las 'formas largas' de hacer referencia a


hojas/rangos[nombres]/filas/etc.
[para que puedas ejecutar las macros 'desde


cualquier' hoja y 'analizar'
diferentes 'comportamientos'] ;)
-> podrias usar las macros en eventos [para automatizar


las tareas]
[por lo pronto... estoy ejemplificando la forma en


que NO hay celdas vacias 'intermedias'] :-)

si cualquier duda o requieres ayuda [o tienes


informacion] adicional... ¿comentas?
saludos,
hector.
en un modulo de codigo 'normal' ==>Sub MostrarTodo() ' para mostrar las filas que 'estaban'


ocultas
Worksheets("Resumen").Range


("Datos.Cliente").EntireRow.Hidden = False
End Sub
Sub Barrer_Ocultar() ' en caso de que el rango 'de


extraccion' tenga 'vacios intermedios'
Dim Fila As Integer
Application.ScreenUpdating = False
With Worksheets("Resumen").Range("Datos.Cliente")
For Fila = 1 To .Rows.Count
.Range("a" & Fila).EntireRow.Hidden = (.Range("a" &


Fila) = "")
Next
End With
End Sub
Sub MostrarSoloLlenas() ' en caso de que quieras usar


el 'conteo' de datos 'encontrados'
Dim Registros As Integer
MostrarTodo
With Worksheets("Resumen")
Registros = .Range("Registros")
With .Range("Datos.Cliente")
Range(.Range("a" & Registros + 1), .Range("a"


& .Rows.Count)) _
.EntireRow.Hidden = True
End With
End With
End Sub
en el modulo de codigo de 'la hoja' ==>Private Sub Worksheet_Calculate() ' por si quieres


mantener visibles solo los datos 'encontrados'
MostrarSoloLlenas
End Sub

.





Hector:

Gracias por tu respuesta, todavia tengo dudas

en un modulo de codigo 'normal' < donde inserto
esto
en el modulo de codigo de 'la hoja' < donde


inserto esto

al ejecutar la macro NO HACE LO QUE NECESITO
al parecer trabaja pero no oculta las filas

creo que te ayudaria lo siguiente

la hoja la nombre "Cuentas por Cobrar"
el rango lo nombre como "datos.cliente" <- lo tome de tu
macro

el rango es de a10 hasta i400

el dato que uso como base para ocultar la fila es el
contenido en la columna A, esto es: si el contenido de la
celda A10 es igual a 0 entonces oculta la fila sino revisa
siguiente fila. < y revisa la celda a11 despues la a12
hasta que termine el rango, posiblemente tenga que
modificar el rango de a10..i400 a a100..a400 para que sea
ese el rango donde buscar.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida