Iniciar macro al cambiar un valor en un menú.

Muy buenos días!
Ante todo quiero agradecer toda la ayuda que, sin preguntar absolutamente nada, todos los expertos de este sitio me han dado. La verdad que aprendí muchísimo con ustedes! Muchas Gracias!
Ahora, para mi primer pregunta aquí: Tengo una planilla en la que listo todos los trabajos que realizo. Cada trabajo ocupa una fila. En la columna E detallo el estado en que el trabajo se encuentra, esto es: "Adjudicado" para los trabajos que me confirmaron para hacer pero todavía no los empecé, "En producción" para aquellos que estoy realizando, "Terminado" para los que están terminados, "Facturado" para los que ademas de terminado están facturados y dejo esa celda en blanco cuando solo cotice ese trabajo pero no me lo han aprobado (al menos todavía) el presupuesto. Para esto cree un menu desplegable que es igual para todas las celdas de la columna E
Ahora, lo que quiero hacer, es que cuando termine un trabajo (es decir, cambie el valor de la celda que está en la columna E, que corresponde a la fila del trabajo en cuestión) me inicie una simple macro que lo que va a hacer es correrse 10 columnas a la derecha, y congelar el valor que esta allí (para lo que pienso usar copiar y pegar como valor) ya que es una celda que contiene una fórmula, cuyo valor cambiaría al iniciar otra macro, y no quiero que eso sea así.
Perdón si la explicación fue extensa, solo quise hacerla lo más claro posible.
Una vez más, muchísimas gracias por su tiempo! Cualquier duda, ya saben!
Saludos

1 Respuesta

Respuesta
1
Si los cambios los haces en columna E entonces pega este script en el editor de visual basic
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 5 Then
'aca llamas a tu macro
End If
End Sub
Cada vez que cambies el valor de la lista o "alguna celda" de la columna E se llamara a la macro que decidas, solo debes poner el nombre del macro que correrás entre el if y el end if
bye
Perfecto! Si, todavía me falta mucho aprender sobre el "if" je je. Pero quisiera hacer un poco más, si es posible. Yo quiero iniciar la macro si la celda en cuestión toma un cierto valor, en mi caso "Terminado" solo en ese caso quiero iniciarla. ¿Se podrá?
En ese caso seria:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 5 And UCase(Target) = "TERMINADO" Then
'aca llamas a tu macro
End If
End Sub
Si tienes otra pregunta, te agradecería cerrar esta ( que ya son 2 en 1) "que ya esta resuelta " y abrir Otra.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas