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

Respuesta
1

Acabo de probar la macro y funciona perfectamente.

¿Cómo van tus pruebas?

Te envío Libro

Gracias!

Ya te lo he enviado por mail

Recuerda finalizar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas