Son Patricio, Como puedo hacer que cuando una celda cambie su contenido, haga que se ejecute una macro sin ninguna intervención.
1 respuesta
Respuesta de andriu25
1
1
andriu25, Ingeniero Informático, con experiencia en lenguajes de...
Para poder mirar bien tu problema y darte una posible solución, agradezco me resuelvas una pregunta... ¿Tienes instalado VB6 en tu equipo para pensar en controlarlo desde otra aplicación o todo lo estás haciendo todo desde el editor de visual que viene incorporado en el Excel?
Es el que viene con el excel. Gracias por atender.
Espero que aún te sirva la respuesta... normalmente me concentro en aplicaciones directas desde vb 6.0 y no en macros por lo que te pido me disculpes por la demora ... Sin embrago, no me gusta cerrar las preguntas de los usuarios sin responderlas (es casi un reto personal) y por ello estuve averiguando sobre el caso de tu macro, con lo que logré averiguar como hacer en Excel para correr instrucciones de VBA sin la interacción del usuario... Debes pararte en el edito de código de VBA y ubicarte en el código propio de la hoja en la que estés trabajando o desees trabajar y allí existe el evento que controla los cambios de dicha hoja... para ser más exacto voy a enviarte un pequeño ejemplo: Parate en el editor de código de una hoja POR en la que estés trabajando y coloca el siguiente código: Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Column = 3 And Target.Row = 1 Then Cells(1, 1).Value = 20 Cells(2, 1).Value = 30 Cells(3, 1).Value = 40 Cells(4, 1).Value = 50 End If End Sub Luego pasate a la hoja de excel y modifica la celda C1, momento en que te darás cuenta que automáticamente las celdas A1, A2, A3, A4 deben tomar los valores que les estoy asignando. ! Aquí me funciona very good, espero que a ti también. Revísalo y me cuentas si te sirvió. Andriu25
Hola Andriu, muchas gracias por atenderme. De una base de datos que se generan valores cada 15 minutos, yo los copio al excel y mediante una macro los pego en otro sitio de la misma hoja, con la salvedad de que la macro (que me costó mucho tiempo y malas noches) discrimina sin son valores positivos o negativos y a que hora le corresponde pegar. Esa dichosa macro es la que quiero que se ejecute sin que yo presione el botón que le puse para tal efecto. En otras palabras, cuando pego el valor que traigo de la base de datos, arranque automáticamente la macro. Gracias
Ok, entonces los que te había remitido funciona con una variación, colocas la rutina en el evento worksheet_change del libro y hoja en que necesitas que se ejecute tu macro, y estableces cual celda es la que debe verificarse si cambia y dentro del ciclo aplicas el comando Application. Run seguido del nombre y ubicación de la macro... es decir, como en el siguiente ejemplo: Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Column = 8 And Target.Row = 1 Then Application.Run "PERSONAL.XLS!Ingresos" 'Personal.xls (Es en mi caso el libro de Macros) 'Ingresos(Es el nombre de la Macro con la q' probé) End If End Sub