ejecutar macro en función de valor de celda

03/02/2004 - 13:28 por Osejol | Informe spam
Hola a todos.

Tengo el siguiente código que ejecuto desde la hoja "PRINCIPAL" pulsando
Ctrl+a. Esto lo tengo que hacer repetitivamente determinado número de veces
(variable).

Sub auxiliar()
Application.ScreenUpdating = False
Sheets("AUXILIAR").Select
Range("C3:C3").Select
Selection.Copy
Range("A65536").Select
Selection.End(xlUp).Select
ActiveCell.Offset(2, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:=False, Transpose:=False
Sheets("PRINCIPAL").Select
End Sub

Lo que me gustaría es que una vez que pulse Ctrl+a el código se ejecute
automáticamente mientras el valor de una celda sea mayor que 0 (cero), por
ejemplo la celda J10, y así no tener que pulsar Ctrl+a nada más que una vez.

La verdad es que he probado varias cosas pero no he conseguido que funcione.

Si alguien puede ayudarme le estaré muy agradecido.


Saludos

Osejol
 

Leer las respuestas

#1 Ignacio Pérez
03/02/2004 - 17:57 | Informe spam
Hola:
No se puede hacer lo que pretendes, me explico, si quieres cambiar el valor
de una celda mientras se ejecuta una macro debes de hacerlo con una
instrucción dentro de la propia macro o que la celda contenga una formula
que varíe en relación a alguna de las que la macro modifica, porque la
ejecución de la macro te va a impedir el acceso manual a cualquier celda o
rango. ¿existe la posibilidad de saber el numero de veces que se tiene que
ejecutar el bucle?

De todas formas te he modificado ligeramente la macro y te pongo el código
pero ten en cuenta que al ejecutarla vas a entrar en un bucle sin
fin.

Sub auxiliar()
Do
Sheets("AUXILIAR").Range("C3").Copy
Sheets("AUXILIAR").Range("A65536").End(xlUp).Offset(2,
0).Range("A1").PasteSpecial _
Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Loop While Range("D1").Value = 0
End Sub

Si tienes dudas por aquí estaré
Un saludo

"Osejol" escribió en el mensaje
news:bvo44r$2rf$
Hola a todos.

Tengo el siguiente código que ejecuto desde la hoja "PRINCIPAL" pulsando
Ctrl+a. Esto lo tengo que hacer repetitivamente determinado número de


veces
(variable).

Sub auxiliar()
Application.ScreenUpdating = False
Sheets("AUXILIAR").Select
Range("C3:C3").Select
Selection.Copy
Range("A65536").Select
Selection.End(xlUp).Select
ActiveCell.Offset(2, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:=False, Transpose:=False
Sheets("PRINCIPAL").Select
End Sub

Lo que me gustaría es que una vez que pulse Ctrl+a el código se ejecute
automáticamente mientras el valor de una celda sea mayor que 0 (cero), por
ejemplo la celda J10, y así no tener que pulsar Ctrl+a nada más que una


vez.

La verdad es que he probado varias cosas pero no he conseguido que


funcione.

Si alguien puede ayudarme le estaré muy agradecido.


Saludos

Osejol


Preguntas similares