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
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 de Juan Carlos González Chavarría
1