Visual Basic para Aplicaciones - error de filtro????

Life is soft - evento anual de software empresarial
 
Vista:
Imágen de perfil de Jorge leon
Val: 3
Ha aumentado su posición en 28 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

error de filtro????

Publicado por Jorge leon (27 intervenciones) el 07/07/2014 23:13:28
Estimados amigos de LWP, estoy trabajando con una aplicación sencilla de vba para excel 2010, la cual consiste en un formulario con varios textbox y varios botones….. y funciona + o -, el probleTma es que genero un filtro que se supone me crea una nueva hoja con las faltas de x mes y me sale el siguiente error:
Microsoft Visual Basic
Se ha producido el error '1004' en tiempo de ejecución
Error en el método AutoFilter de la Clase Range.

Y el código es el siguiente:
Private Sub CommandButton4_click()
'Lista de asistencia
Dim ultlinea, fila ,i As Long
Static Columna As String
Dim duplicados As Boolean
Sheet("EST-JUB-PEN").Select
ultlinea=range("A" & Rows.Count).End(xlUp).Row
Columns("A:A").Select
Slelection.AutoFilter
if mes="JUNIO" then
ActiveSheet.Range("$A$1:$P$309").AutoFilter field:=8, criteria1:="A"
end if
Range("A1:P" & ultlinea).Select
.
.
.
El =”A” es para que me filtre los que tengan una A de asistencia y lo más curioso es que cierro la aplicación sin realizar ningún cambio y vuelvo a ejecutar la aplicación y doy clik en CommandButton4 o el botón que genera la nueva hoja con las Asistencias y funciona correctamente, si me genera la nueva hoja y me filtra los datos de los asistentes??????????? Si me pueden ayudar ya que no encuentro el error…… de antemano gracias Jorge….
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

error de filtro????

Publicado por Antoni Masana (498 intervenciones) el 08/07/2014 07:02:33
Observo una línea que me da malestar porque me he encontrado con el problema pero a mi no me causaba ningún error por la propia operativa, y no he investigado el tema.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub CommandButton4_click()
    'Lista de asistencia
    Dim ultlinea, fila ,i As Long
    Static Columna As String
    Dim duplicados As Boolean
 
    Sheet("EST-JUB-PEN").Select
    ultlinea=range("A" & Rows.Count).End(xlUp).Row
    Columns("A:A").Select
 
    Slelection.AutoFilter
 
     if mes="JUNIO" then
       ActiveSheet.Range("$A$1:$P$309").AutoFilter field:=8, criteria1:="A"
    end if
    Range("A1:P" & ultlinea).Select
    .
    .


La línea remarcada, a parte de estar mal escrita ( Selection.AutoFilter ), Activa y Desactiva el Auto Filtro con lo que una vez NO funciona ( Lo desactiva ) y a la vez siguiente SI funciona ( Lo activa )

Lo deseable seria

1
IF AutoFilter = OFF then Selection.AutoFilter


pero la gran pregunta es ¿Cómo saber si el auto filtro esta activado?

Creo que respondiendo a esta pregunta solucionadas el problema.

He encontrado esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Sub CommandButton4_click()
    'Lista de asistencia
    Dim ultlinea, fila ,i As Long
    Static Columna As String
    Dim duplicados As Boolean
 
    Sheet("EST-JUB-PEN").Select
    ultlinea=range("A" & Rows.Count).End(xlUp).Row
    Columns("A:A").Select
 
    With ActiveSheet
        .AutoFilterMode = False
        .Range("A1:P1").AutoFilter
    End With
 
 
     if mes="JUNIO" then
       ActiveSheet.Range("$A$1:$P$309").AutoFilter field:=8, criteria1:="A"
    end if
    Range("A1:P" & ultlinea).Select
    .
    .

Desactiva el AutoFilter y lo Activa de la columna A a la Columna P

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar