Luis: falla en código para evento change
Pretendo que al entrar un valor en algunas celdas de columna F coloque fórmula en celda contigua de columna E. Lo que me ocurre es que en ciertas ocasiones (pocas pero que lo invalidan como método) no lo hace.
La secuencia pretendida (si se entra un valor en la columna F ) debería ser:
desproteger
desactivar autofiltro
colocar la fórmula
activar autofiltro
proteger
Ocurre como si algunas veces no desactivara el filtro antes de colocar la fórmula.
Aquí el código:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Cells.Count > 1 Then Exit Sub
If IsEmpty(Target) Then Exit Sub
If Not Intersect(Target, Range("f1:f100")) Is Nothing Then
ActiveSheet.Unprotect
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
ActiveCell.Offset(-1, 0).Activate
ActiveCell.Offset(0, -1).Formula = "=c2* " & ActiveCell.Address
ActiveCell.Offset(1, 0).Select
Rem MAT es la hoja activa
Sheets("MAT").Select
Selection.AutoFilter Field:=1, Criteria1:=">0", Operator:=xlAnd
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowInsertingRows:=True, AllowDeletingColumns _
:=True, AllowDeletingRows:=True, AllowFiltering:=True
End If
Application.ScreenUpdating = True
End Sub
Gracias