Error de compilación

4 envíos / 0 nuevos
Último envío
Jesús Martínez
Imagen de Jesús Martínez
Offline
última acción: Hace 2 años 5 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntos
alta: 31/03/2013 - 17:15
Puntos: 5008
Error de compilación
Buenas noches:
Tengo el siguiente código:
Sub infcierre()
Sheets("CIERRE").Unprotect Password:="xxx"
On Error Resume Next
If Not Intersect(Target, Range("E4")) Is Nothing Then
   With PivotTables("Tabla dinámica3").PivotFields("FECHA")
   
        .ClearAllFilters
        .NumberFormat = "dd-mm-yyyy"
 
        .CurrentPage = Format([E4], "dd-mm-yyyy")
        On Error Resume Next
        .CurrentPage = Range("E4").Value
       
    End With
 
End If
If Err.Number > 0 Then MsgBox "Fecha inexistente"
On Error GoTo 0
 
protecierre
End Sub
 
Cuando ejecuto la macro me sale el mensaje " Error de compilación: No se ha definido Sub o Function " y lo resalta el siguiente código
With PivotTables("Tabla dinámica3").PivotFields("FECHA")
Justo en PivotTables.
 
Este codigo funciona a la perfección cuando está en el código de la hoja directamente Private Sub Worksheet_Change(ByVal Target As Range) y etc y sin contraseña ,  o que tengo que aumentar para que me funcione directamente en la hoja??? o en el modulo.
Ayuda por favor.
Gracias por su tiempo.
Jesús

Etiquetas: 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 4 días 7 horas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11085
PivotTables es una colección

PivotTables es una colección ¿pero donde está?

Si el sódigo está en la hoja, Excel supondrá que te refieres a la colección de esa misma hoja, pero si el código está en otra parte ¿que debería suponer Excel? cada hoja del libro tiene su colección pivottables (aunque no haya ninguna tabla dinámica en la hoja, la colección existe)

Así que ponle la hoja delante, con su nombre con Worksheets("hoja1") o prueba a poner algo como 

ActiveSheet.PivotTables

si te quieres referir a la hoja activa en cada momento.

 

Ten también en cuenta que está utilizando en tu código la variable Target, que es una variable especial que utilizan algunos eventos de la hoja como el evento Worksheet_change, pero tu macro no tiene objeto Target 

 

 

 

------
Ya sé Excel, pero necesito más.

Jesús Martínez
Imagen de Jesús Martínez
Offline
última acción: Hace 2 años 5 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntos
alta: 31/03/2013 - 17:15
Puntos: 5008
Eres el mejor

Gracias por la respuesta, pero por favor como deberia mejorar mi código? porque la verdad me perdi jejeje, por favor si me podrias detallar el código mejorado te agradeceria un monton.

Saludos cordiales

Jesús

Jesus Martinez Plantarosa

Jesús Martínez
Imagen de Jesús Martínez
Offline
última acción: Hace 2 años 5 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntos
alta: 31/03/2013 - 17:15
Puntos: 5008
Adjunto el archivo

Para ser un más util mi pregunta adjunto el archivo

AdjuntoTamaño
File cierre.xlsm22.8 KB

Jesus Martinez Plantarosa