** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Error en Worksheet_Change
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoError en Worksheet_Change

 Responder Responder
Autor
Mensaje
Gladiador Ver desplegable
Habitual
Habitual
Avatar

Unido: 22/Junio/2006
Localización: Venezuela
Estado: Sin conexión
Puntos: 98
Enlace directo a este mensaje Tema: Error en Worksheet_Change
    Enviado: 06/Diciembre/2017 a las 18:35

Hola, tengo una duda y quisiera su ayuda

He construido una tabla dinámica, la cual deseo filtrar los resultados según una letra.

Adicionalmente, he incluido una instrucción en el editor de VA para que se actualice al escribir la letra en una celda. En este caso es la celda I5

La instrucción es la siguiente:

If Target = Range("I5") Then

        Sheets("Prueba").PivotTables("PivotTable1").PivotCache.Refresh

      ActiveSheet.PivotTables("PivotTable1").PivotFields("Letra").ClearAllFilters

    ActiveSheet.PivotTables("PivotTable1").PivotFields("Letra").CurrentPage = Range("I5").Value

End If

 

La instrucción funciona bien con la subrutina:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

 

End Sub

Lo cual tengo entendido se usa para cuando cambio el cursor de posición, o sea seleccionar otra celda

 Deseo ejecutar la instrucción al modificar cualquier celda, para lo cual estoy tratando de usar

 

Private Sub Worksheet_Change(ByVal Target As Range)

 

End Sub

 

He movido todas las líneas de instrucción a esta subrutina

 Sin embargo, me da un mensaje de error, al modificar la celda I5

            Run-time error ‘1004’:

            Application-defined or object-defined error

 

Al hacer click en Debug sombrea la línea

 

            Sheets("Prueba").PivotTables("PivotTable1").PivotCache.Refresh

 

Si elimino esa instrucción y continúo con la ejecución, el mensaje de error dice:

 (Lo mismo ocurre si detengo la ejecución y, con la instrucción eliminada, vuelvo a empezar)

            Run-time error ‘13’:

            Type mismatch

 

Al hacer click en Debug sombrea la línea

 

            If Target = Range("I5") Then

 

Podrían decirme que estoy hacienda mal, o que debo hacer para corregirlo


Gracias 

Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: Alcalá Meco
Estado: Sin conexión
Puntos: 2943
Enlace directo a este mensaje Enviado: 07/Diciembre/2017 a las 01:56
Prueba

If Target = Range("I5").value Then

Un saludo.

luis
Quod natura non dat, Salmantica non præstat
Arriba
Gladiador Ver desplegable
Habitual
Habitual
Avatar

Unido: 22/Junio/2006
Localización: Venezuela
Estado: Sin conexión
Puntos: 98
Enlace directo a este mensaje Enviado: 12/Diciembre/2017 a las 02:32
Gracias Ibauluz, me funcionó bien.
También me funcionó con:

If Target.Address = "$I$4" Then

GraciasSe puede cerrar el hilo
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable