Problema al ejecutar macro desde Sub worksheet_Change

Buenos días expertos, soy nuevo con soy en VB.

Grabe y edite una macro, la misma quedo guardada en "Modulo1"

Sub FiltrarMovDeMaquinas()
'
' MovDeMaquinas Macro
' Macro grabada el 03/02/2014 por Julián
'no parpadea
Application.ScreenUpdating = False
'apagar saltos de paginas
ActiveSheet.DisplayPageBreaks = False
'seleccionar pestaña
Sheets("Export_cas").Select
'Desproteger hoja
ActiveSheet.Unprotect "978645312"
'Filtrar Ticket in Ticket out
Columns("H:J").AdvancedFilter Action:=xlFilterCopy _
, CriteriaRange:=Range("V1:V2"), CopyToRange:=Range("T3"), Unique:=False
'filtrar Pagos Fuera de Sistema
Columns("H:J").AdvancedFilter Action:=xlFilterCopy _
, CriteriaRange:=Range("Z1:Z2"), CopyToRange:=Range("X3"), Unique:=False
'filtrar Procesos de Pagos
Columns("H:J").AdvancedFilter Action:=xlFilterCopy _
, CriteriaRange:=Range("AD1:AD2"), CopyToRange:=Range("AB3"), Unique:=False
'filtrar Recupero de Poder Publico
Columns("H:J").AdvancedFilter Action:=xlFilterCopy _
, CriteriaRange:=Range("AH1:AH2"), CopyToRange:=Range("AF3"), Unique:=False
'filtrar Poder Publico
Columns("H:J").AdvancedFilter Action:=xlFilterCopy _
, CriteriaRange:=Range("AL1:AL2"), CopyToRange:=Range("AJ3"), Unique:=False
'filtrar Emitidos
Columns("H:J").AdvancedFilter Action:=xlFilterCopy _
, CriteriaRange:=Range("AP1:AP2"), CopyToRange:=Range("AN3"), Unique:=False
'filtrar Anulados
Columns("H:J").AdvancedFilter Action:=xlFilterCopy _
, CriteriaRange:=Range("AT1:AT2"), CopyToRange:=Range("AR3"), Unique:=False
'filtrar Tickets pagados en maquina
Columns("H:J").AdvancedFilter Action:=xlFilterCopy _
, CriteriaRange:=Range("aX1:aX2"), CopyToRange:=Range("AV3"), Unique:=False
'filtrar Tickets pagados en caja
Columns("H:J").AdvancedFilter Action:=xlFilterCopy _
, CriteriaRange:=Range("BB1:BB2"), CopyToRange:=Range("AZ3"), Unique:=False
'filtrar Recupero por anulación
Columns("H:J").AdvancedFilter Action:=xlFilterCopy _
, CriteriaRange:=Range("BF1:BF2"), CopyToRange:=Range("BD3"), Unique:=False
'filtrar Recupero por vencido / anulado
Columns("H:J").AdvancedFilter Action:=xlFilterCopy _
, CriteriaRange:=Range("BJ1:BJ2"), CopyToRange:=Range("bh3"), Unique:=False
'filtrar Tickets vencidos
Columns("H:J").AdvancedFilter Action:=xlFilterCopy _
, CriteriaRange:=Range("bn1:bn2"), CopyToRange:=Range("bl3"), Unique:=False
'filtrar Tickets vencidos pagados
Columns("H:J").AdvancedFilter Action:=xlFilterCopy _
, CriteriaRange:=Range("br1:br2"), CopyToRange:=Range("bp3"), Unique:=False
'filtrar Diferencia
Columns("H:J").AdvancedFilter Action:=xlFilterCopy _
, CriteriaRange:=Range("bv1:bv2"), CopyToRange:=Range("bt3"), Unique:=False
'volver a proteger hoja
ActiveSheet.Protect "978645312"
'activar parpadeo
Application.ScreenUpdating = True
End Sub

Lo que quiero es que se autoejecute cuando cualquier celda de un rango cambia de valor. Busque info en internet y llegue a la conclusión de escribirlo así:

Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target = h4:j3000 Then
Application.Run FiltrarMovDeMaquinas
End If
End Sub

Me tira error de compilación: Se esperaba function o una variable

Hasta acá llego mi conocimiento

1 Respuesta

Respuesta
1

Quedaría mejor así:

Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Target, Range("h4:j3000")) Is Nothing Then
    FiltrarMovDeMaquinas
End If
End Sub

Saludos. Dante Amor
No olvides finalizar la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas