Macro condicionada

25/05/2007 - 18:06 por Belinda | Informe spam
...solicito vuestra ayuda para realizar una macro que evalúe un rango
que empieza en A2, sigue en A3, A4 y no se dónde termInará, para que
si encuentra algo en alguna celda de ese rango, sume en su
correspondiente celda en AF (AF2, AF3, etc, lo que hay en AD2+AE2...

..o sea que, si A2 no está vació, suma en AF2 lo que hay en AD2+lo que
hay en AE2..y asi sucesivamente hasta que en la columna A no haya
nada

Gracias por vuestra ayuda

Preguntas similare

Leer las respuestas

#6 Belinda
28/05/2007 - 10:07 | Informe spam
On 26 mayo, 13:31, "KL" wrote:
HolaBelinda,

> las comas que pones delante del 1

Si te refieres a algo como lo siguiente:

strRng1 = Rng.Address(, , , 1)

Entonces cada coma delimita un parametro opcional de la funcion saltado por irrelevante. Por ejemplo la propiedad Address() tiene
los siguientes parametros:

rng.Address(RowAbsolute, ColumnAbsolute, ReferenceStyle, External, RelativeTo)

Para este caso yo solo necesito el cuarto parametro que es External.

Por eso, al saltar los tres anteriores, los marco mediante las comas para que a traves de su posicion Excel sepa cual de los
parametros quiero usar .

Tambien pude haber idicado el parametro expresamente:

strRng1 = Rng.Address(External:=1)

Pero es mas largo :-)

El 1 en el cuarto parametro [casi] equivale a True (Verdadero). Estrictamente dicho, en VBA False=0 y True=-1, pero en realidad en
las expresiones buleanas True es cualquier valor no igual a 0. Asi que pude haber puesto algo como:

strRng1 = Rng.Address(, , , True)
strRng1 = Rng.Address(, , , -1)
strRng1 = Rng.Address(, , , 2007)
strRng1 = Rng.Address(External:=True)
strRng1 = Rng.Address(External:=-1)
strRng1 = Rng.Address(External: 07)
etc.

> ... y como variante, imaginate que no
> quiero sumar lo que hay en esos rangos, sino multiplicarlo...por lo
> que hay en otra celda. Es que los datos que debo manejar, se bajan de
> una Web y cuando tengo que sumar algo, no lo hace bien hasta que
> multiplico los valores bajados por 1...También he observado que no
> funciona igual la función Autosuma que si le pones tú la fórmula
> SUMA(a1:a etc..

A diferencia de los operadores aritmeticos basicos, las funciones de Excel que realizan operaciones matematicas [salvo algunas otras
como p.ej.: CONTAR.SI(), SUMAR.SI(), etc] son incapaces de forzar la conversion de las cadenas de texto numericas en su valoir
numerico equivalente. En principio la siguiente instruccion deberia funcionar:

Rng.Offset(, 31) = Evaluate("IF(" & strRng1 & "<>""""," & strRng2 & "*" & strRng3 & ","""")")

Saludos,
KL



..gracias de nuevo KL, entiendo un poco...voy a probar...
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida