Macro con buscar objetivo

11/02/2004 - 13:54 por Santi | Informe spam
¿Cómo puedo modificar esta línea de macro para que en lugar de que el
objetivo a buscar, en lugar de 800, sea el valor que tenía la celda I1
antes de iniciarse el cálculo?

Range("I2").GoalSeek Goal:€0, ChangingCell:=Range("I1")

Muchas gracias.

Preguntas similare

Leer las respuestas

#1 Fernando Arroyo
11/02/2004 - 16:04 | Informe spam
Prueba con:

Range("I2").GoalSeek Goal:=Range("I1"), ChangingCell:=Range("I1")

De todas formas, te recomiendo cualificar más las referencias a rangos (a no ser que el código esté en el módulo de la hoja), por ejemplo:

Worksheets("Hoja1").Range("I2").GoalSeek Goal:=Worksheets("Hoja1").Range("I1"), ChangingCell:=Worksheets("Hoja1").Range("I1")

o en tres líneas de código, pero más fáciles de leer:

With Worksheets("Hoja1")
.[I2].GoalSeek goal:=.[I1], changingcell:=.[I1]
End With

Un saludo.


Fernando Arroyo
MS MVP - Excel


"Santi" escribió en el mensaje news:
¿Cómo puedo modificar esta línea de macro para que en lugar de que el
objetivo a buscar, en lugar de 800, sea el valor que tenía la celda I1
antes de iniciarse el cálculo?

Range("I2").GoalSeek Goal:€0, ChangingCell:=Range("I1")

Muchas gracias.
Respuesta Responder a este mensaje
#2 Santi
11/02/2004 - 19:51 | Informe spam
Fernando Arroyo escribió:

Prueba con:

Range("I2").GoalSeek Goal:=Range("I1"), ChangingCell:=Range("I1")



Gracias. He probado esto y funciona.

De todas formas, te recomiendo cualificar más las referencias a rangos
(a no ser que el código esté en el módulo de la hoja), por ejemplo:



Como demuestra la consulta simple que he hecho, no controlo mucho las
macros, y me pierdo enseguida en algunos conceptos.

Luego experimentaré con el resto de códigos que me has puesto, pero de
momento, funciona, a pesar de que tengo que pulsar tres veces el botón
que activa la macro para conseguir el resultado final deseado.

Supongo que no debe ser nada difícil decirle que con ejecutar la macro
una sola vez, repita la acción tres veces...

Muchas gracias por tu ayuda.
Respuesta Responder a este mensaje
#3 Fernando Arroyo
11/02/2004 - 20:31 | Informe spam
"Santi" escribió en el mensaje news:
Fernando Arroyo escribió:

> Prueba con:
>
> Range("I2").GoalSeek Goal:=Range("I1"), ChangingCell:=Range("I1")

Gracias. He probado esto y funciona.

> De todas formas, te recomiendo cualificar más las referencias a rangos
> (a no ser que el código esté en el módulo de la hoja), por ejemplo:

Como demuestra la consulta simple que he hecho, no controlo mucho las
macros, y me pierdo enseguida en algunos conceptos.

Luego experimentaré con el resto de códigos que me has puesto, pero de
momento, funciona, a pesar de que tengo que pulsar tres veces el botón
que activa la macro para conseguir el resultado final deseado.

Supongo que no debe ser nada difícil decirle que con ejecutar la macro
una sola vez, repita la acción tres veces...




Estás en lo cierto, no es nada difícil. Lo único que tienes que hacer es crear una variable para llevar la cuenta de las veces que se ha ejecutado el código:

Dim Contador as Byte

y meter las instrucciones que quieras que se ejecuten tres veces dentro de un bucle en el cual el iterador sea la variable:

For Contador = 1 to 3
'
'Instrucciones
'
Next Contador


Un saludo.


Fernando Arroyo
MS MVP - Excel


Muchas gracias por tu ayuda.



De nada :-)
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida