Macros; como evaluar el resultado de una fórmula...

Hola, ojalá puedas atender mi consulta...
Tengo la siguiente macro que copia determinados datos y los pega en otra, solo cuando alguna celda de la columna QUE toma el valor "OK"--- el problema, es que el valor "OK" es el resultado de una fórmula SI, y al parecer solo funciona cuando modifico el valor manualmente se ejecuta la macro... Y funciona cuando tiene que evaluar el resultado de la fórmula...
Que instrucción debería agregar o que linea modificar para indicarle a la macro que lo que esta evaluando es el resultado de una fórmula...
Atento a tus comentarios, y desde ya muchas gracias...
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Row >= 11 And Target.Column = 17 And Target.Count = 1 Then
If Target.Value = "OK" Then
desocupada = Sheets("macro_giu").Range("B65536").End(xlUp).Row + 1
Target.Offset(0, -1).Copy
Sheets("macro_giu").Cells(desocupada, 15).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Target.Offset(0, -2).Copy
Sheets("macro_giu").Cells(desocupada, 14).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Target.Offset(0, -3).Copy
Sheets("macro_giu").Cells(desocupada, 13).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Target.Offset(0, -6).Copy
Sheets("macro_giu").Cells(desocupada, 10).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Target.Offset(0, -9).Copy
Sheets("macro_giu").Cells(desocupada, 7).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Target.Offset(0, -10).Copy
Sheets("macro_giu").Cells(desocupada, 6).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Target.Offset(0, -11).Copy
Sheets("macro_giu").Cells(desocupada, 5).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Target.Offset(0, -12).Copy
Sheets("macro_giu").Cells(desocupada, 4).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Target.Offset(0, -14).Copy
Sheets("macro_giu").Cells(desocupada, 2).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Target.Offset(0, -1).Select
End If
End If
Application.ScreenUpdating = True
End Sub

1 Respuesta

Respuesta
1
If Target.Text = "Ok"
Gracias por atender mi consulta...
Pero, desgraciadamente la modificación del target no solucionó la problemática... aún tengo que situarme en el interior de la celda y pulsar tab o enter...
Me da la sensación que el cambio que evalúa la macro solo funcionara cuando el cambio se realiza manual...
Saludos,
Te sugiero que insertes el código en un Módulo, luego en el evento Change de la hoja pones:
Application.ScreenUpdating = False
If Target.Row >= 11 And Target.Column = 17 And Target.Count = 1 Then
If Target.Value = "OK" Then Tu_Modulo
Si no funciona, podrías insertar el código en un botón.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas