Re: filtrar y mantener total

19/01/2006 - 21:54 por lg | Informe spam
Muchas gracias Hector Miguel, justamente era eso, pero ahora me surge otro problema, he buscado bastante dentro del foro y de una lista de excel y pienso que estoy cerca, quizas es algun error de sintaxis, me explico

Tengo una formula en los totales que toma el valor de la fila anterior EJ (columna C)

_________A B C
___je_____100 200 30
___jo_____200 200 10
TOTAL 300 400 10

Pero Por ejemplo al filtrar "je", no me toma como anterior 300, sino que me toma 100, ya que por lo que investigue, las filas solo se ocultan con los autofiltros

A mi se me ocurrio hacer alguna macro que cuente las ocultas y dado el total q se encuentra en la fila Nº "=FILA()" sacar la fila anterior , lo que encontre fue esto

Function Ocultas(rango
Application.Volatil
For Each celda In rang
If celda.EntireRow.Hidden Then
ocultas = ocultas +
Nex
End Functio

luego inserto en la celda del total el valor de la celda "C(=FILA()+fila comienzo - OCULTAS)"

puse esi la macro

Sub uhm(
Function Ocultas(rango
Application.Volatil
For Each celda In rang
If celda.EntireRow.Hidden The
Ocultas = Ocultas +
End I
Nex
End Functio
End Su

pero me dice "error de compilacion se esperaba un end sub " y no he pillado en que fallo(es primera ves que creo una macro) .. igual es medio complicado la solucion y lo mas seguro es que exista una mas facil .. ojala me ayuden

Gracias

lg

Ver este tema: http://www.softwaremix.net/viewtopic-476097.htm

Enviado desde http://www.softwaremix.net
 

Leer las respuestas

#1 Héctor Miguel
20/01/2006 - 00:12 | Informe spam
hola, lg !

... ahora me surge otro problema... una formula en los totales que toma el valor de la fila anterior EJ (columna C):
_________A B C
___je_____100 200 300
___jo_____200 200 100
TOTAL 300 400 100
... al filtrar "je", no me toma como anterior 300, sino que me toma 100...
... se me ocurrio hacer alguna macro que cuente las ocultas y [...]



antes de 'llegarle' a las macros [ademas de que no puedes 'meter' un procedimiento function 'dentro' de un procedimiento sub]...
y con los siguientes supuestos [ya que los ejemplos que expones no son muy 'explicitos' en cuanto a los rangos donde estan]...
1) en 'C1' tienes algun titulo [y es la fila con las listas desplegables de los autofiltros]
2) el rango [columna 'C'] donde filtras [antes de 'la formula'] es -> 'C2:C31'
3) la celda donde se toma 'la fila anterior' [visible despues del filtro] es -> 'C32'
-> usa ALGUNA de las siguientes formulas:
=desref(c1,max(fila(c2:c31)*subtotales(2,desref(c2,fila(c2:c31)-fila(c2),0)))-1,0)
=indirecto("c"&max(fila(c2:c31)*subtotales(2,desref(c2,fila(c2:c31)-fila(c2),0))))

-> toma nota de que se trata de formulas 'matriciales' [es decir]...
cuando se introducen/editan... se deben terminar con la combinacion de teclas {ctrl}+{mayus}+{enter}
NO con un solo y simple {enter} <= OJO
-> y no olvides ajustar los rangos a los 'reales' y recuerda lo de 'mis' comas :D

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Preguntas similares