Filtro

19/01/2008 - 13:31 por Gabriel | Informe spam
Quiero a partir de una tabla cuya primera columna son fechas y las siguientes
datos, filtrar a cuatro lugares distintos de la misma hoja las fechas y datos
correspondientes a cada trimestre del año y sumar los datos en cada tabla
resultante.
Gracias anticipadas

Preguntas similare

Leer las respuestas

#11 Gabriel
23/01/2008 - 10:27 | Informe spam
Hola JJ Elizalde, mi salvador.
Efectivamente he realizado tu propuesta y funciona.
Solo una pequeña corrección. En las sentencias: CopyTo Range:=Range ("D20")
y similares debes poner: CopyToRange:=Range ("D20:F100") para que salga
completo a partir de la segunda fila.
La verdad es que no había entendido bien.
¿Existe la posibilidad de que esta macro se ejecute automaticamente al
trminar de rellenar una fila en la base origen? !Sería definitivo¡
Muchas gracias. Me había dicho mi padre que la constancia tenía premio y es
verdad
Saludos
Gabriel

"excelamedida.com" wrote:

Hola Gabriel,
Me extraña que digas que no te sale, lo he probado otra vez y funciona
muy bien.
Mira lo que puedes hacer primero es probar el código propuesto sin
adaptarlo a tus necesidades, sólo para comprobar el funcionamiento.
Empieza desde cero, en una hoja vacia, en la celda C1 escribe
"trimestre" (simpre sin comillas), en la celda A3 "Mes", en B3 "Datos"
y en C3 "trimestre", en A4 una fecha, en B4 los datos a esa fecha, haz
alguna fila más para probar el código. Después en la celda C4 pega
esta formula:

=SI(Y(MES(A4)>0;MES(A4)<=3);"trimestre
1";SI(Y(MES(A4)>3;MES(A4)<=6);"trimestre
2";SI(Y(MES(A4)>6;MES(A4)<=9);"trimestre
3";SI(Y(MES(A4)>9;MES(A4)<);"trimestre 4"))))

el resultado que muestra es el trimeste en el que está la fecha de la
celda A4, tiene que mostrar "trimestre 1" o "trimestre 2" o... (así
hasta cuatro) ahora copia la celda C4 (no lo copies desde aquí, si no,
copia la celda C4) y pegala hacia abajo hasta la ultima fila con
datos.

Copia la macro y pegala en un modulo normal. El siguiente paso es
ejecutar la macro.

Sobre lo de...
> En tu celda c2 ¿Debo ir cambiando "trimestre1; trimestre2; etc?

No, no tienes que hacer nada, él sólo escribe por ti los cuatro
trimestres y al final de la macro deja la celda vacia.

Si aún así no te funciona me dices lo más exacto que puedas donde te
falla o donde crees que falla y si por esta via no te lo sabemos
solucionar si te parece te mando el ejemplo por mail o te lo pongo en
mi web para que te lo descargues, vale?

Bueno, pues suerte Gabriel!!!
Un saludo
JJ Elizalde

> Hola JJ Elizalde
> He de decirte que me agradó mucho tu respuesta, rápida y apetecible. Que
> desde entonces estoy dandole vueltas. He creado un módulo y he adaptado tus
> rangos a mi particular problema. La solución me pareció intuitiva,
> comprensible y me puse enseguida a trabajar con ella, pero no me sale.
> Hasta el momento no lo he conseguido.
> En tu celda c2 ¿Debo ir cambiando "trimestre1; trimestre2; etc?
> Te agradezco mucho tu interés y el tiempo que me has dedicado. Es hermosa la
> labor que haces y estate seguro que siempre es útil y piensa que la solución
> que de Hector será tambien enriquecedora para todos
> Un saludo
> Gabriel

Respuesta Responder a este mensaje
#12 excelamedida.com
23/01/2008 - 16:35 | Informe spam
Hola Gabriel,
en el módulo de la hoja pon este código, se ejecutará cuando
modifiques alguna celda del rango B4:B65536, tú verás si tienes que
poner otro rango distinto a este ejemplo.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not (Intersect(Target, [B4:B65536]) Is Nothing) Then
Application.EnableEvents = False
Call Trimestres
Application.EnableEvents = True
End If
End Sub

Un saludo
JJ Elizalde


Hola JJ Elizalde, mi salvador.
Efectivamente he realizado tu propuesta y funciona.
Solo una pequeña corrección. En las sentencias: CopyTo Range:=Range ("D20")
y similares debes poner: CopyToRange:=Range ("D20:F100") para que salga
completo a partir de la segunda fila.
La verdad es que no había entendido bien.
¿Existe la posibilidad de que esta macro se ejecute automaticamente al
trminar de rellenar una fila en la base origen? !Sería definitivo¡
Muchas gracias. Me había dicho mi padre que la constancia tenía premio y es
verdad
Saludos
Gabriel
Respuesta Responder a este mensaje
#13 Gabriel
24/01/2008 - 11:20 | Informe spam
Hola JJ Elizalde
Muchas gracias
He hecho varias pruebas y todavía no me sale. Quizás no se exactamente donde
copiar tu código.
Un saludo
Gabriel

"excelamedida.com" wrote:

Hola Gabriel,
en el módulo de la hoja pon este código, se ejecutará cuando
modifiques alguna celda del rango B4:B65536, tú verás si tienes que
poner otro rango distinto a este ejemplo.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not (Intersect(Target, [B4:B65536]) Is Nothing) Then
Application.EnableEvents = False
Call Trimestres
Application.EnableEvents = True
End If
End Sub

Un saludo
JJ Elizalde


> Hola JJ Elizalde, mi salvador.
> Efectivamente he realizado tu propuesta y funciona.
> Solo una pequeña corrección. En las sentencias: CopyTo Range:=Range ("D20")
> y similares debes poner: CopyToRange:=Range ("D20:F100") para que salga
> completo a partir de la segunda fila.
> La verdad es que no había entendido bien.
> ¿Existe la posibilidad de que esta macro se ejecute automaticamente al
> trminar de rellenar una fila en la base origen? !Sería definitivo¡
> Muchas gracias. Me había dicho mi padre que la constancia tenía premio y es
> verdad
> Saludos
> Gabriel

Respuesta Responder a este mensaje
#14 excelamedida.com
26/01/2008 - 21:53 | Informe spam
Hola Gabriel, no se si llego tarde a contestarte pero te comento por
si acaso.

Quizás no se exactamente donde copiar tu código.



En la hoja Excel, en la pestaña donde pone el nombre de la hoja, pulsa
con el botón derecho encima del nombre de la hoja y elige la opción de
"Ver código", ahí a donde te mande, pega el código.

De todas formas si aún así no te apañas ya te cometé que te lo podria
mandar por mail o ponerlo en mi web para que te lo descagues.

Bueno, un saludo
JJ Elizalde

Hola JJ Elizalde
Muchas gracias
He hecho varias pruebas y todavía no me sale. Quizás no se exactamente donde
copiar tu código.
Un saludo
Gabriel
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida