Como activar macro al cambiar el valor de celda

Tengo una macro que abajo detallo, quiero que se active al cambiar los valores de la celda"a4" de mi hoja1, ¿qué instrucción debo agregar?,, gracias...
Sub Printer_Comanda()
'
'
Application.ScreenUpdating = False
ActiveWorkbook.Unprotect
Sheets("HOJA2").Visible = True
Sheets("HOJA1").Select
Range("A4").Select
Selection.Copy
Sheets("HOJA2").Select
Range("B3").Select
Selection.Insert Shift:=xlDown
Sheets("HOJA2").Select
Range("A3").Select
Application.CutCopyMode = False
Selection.Insert Shift:=xlDown
Range("A3").Select
ActiveCell.FormulaR1C1 = "=NOW()"
Rows("3:3").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("A5").Select
Application.CutCopyMode = False
Sheets("HOJA2").Select
ActiveWindow.SelectedSheets.Visible = False
ActiveWorkbook.Protect Structure:=True, Windows:=False
Range("A4").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Range("A4").Select
ActiveCell.FormulaR1C1 = "CIERRE"
ActiveWorkbook.Save
Application.ScreenUpdating = True
End Sub

1 Respuesta

Respuesta
1
Solo es posible si el cambio será manual, no como resultado de fórmula.
Aclarado esto, entrá al Editor, seleccioná con doble clic el objeto HOJA donde estarás haciendo cambios en la celda A4 y allí escribí esto:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(False, False) = "A4" Then Call Printer_Comanda
End Sub
Pruébala y si esto responde a tu consulta no olvides finalizarla.
Ya la probé pero hay un detalle. Parece que hace una instrucción circular, pues al cambiar manualmente el campo de la celda A4, si ejecuta la macro pero la ejecuta repetidamente si parar, ¿tendré hice algo incorrecto?
Si, estoy viendo que la rutina envía un texto a esta celda y por lo tanto se ejecuta nuevamente.
Ajustá la linea de la rutina que empieza con Private Sub dejándola así:
If Target.Address(False, False) = "A4" And Target.Value <> "CIERRE" Then Call Printer_Comanda

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas