Controlar error en tablas enlazadas con la web

12/04/2010 - 04:12 por Robert Blanco | Informe spam
Hola:
Mi problema es el siguiente: Logré realizar una macro donde a través
de un botón se actualiza una tabla conectandose con una web(esta parte
lo hice con el grabador de macro), inclusive detecta cual es la ultima
fila y a partir de ella se actualiza. Bien, al hacer mis pruebas
"desactualizo" mis tablas y pruebo el botón actualizar. La
actualización se realiza perfectamente.
Pero, cuando la tabla ya está actualizada y al volver a apretar el
botón actualizar me sale el siguiente error: "Se ha producido el error
1004 en tiempo de ejecución" Error definido por la aplicación y el
objeto.
Y mi macro se queda en la linea
Selection.QueryTable.Refresh BackgroundQuery:=False

Mis consultas: ¿Como puedo hacer para controlar este error?, por
ejemplo que detecte que ya no necesita actualización y me salga una
msgbox que me indique el estado?
Como yo cree esta macro desde mi pc, con el grabador de macro, al
utilizar en otra Pc, ésta reconocerá la URL utilizada?

Este es el código que esta en mi botón ACtualizar:
Sub actualizar()
Application.ScreenUpdating = False
Dim ultimafila, ultimafilaactualizada As Long

Hoja2.Select
Cells(1, 5).Select
ultimafila = Range("E65000").End(xlUp).Row
ultimafila = ultimafila + 1
Cells(ultimafila, 5).Select
Selection.QueryTable.Refresh BackgroundQuery:=False

Hoja2.Select
Cells(1, 5).Select
ultimafila = Range("E65000").End(xlUp).Row
ultimafilaactualizada = ultimafila
Hoja1.Select

Hoja1.Unprotect "xxx"
Hoja1.Range("c30").Locked = False
Hoja1.Range("c30").Value = "Tablas actualizadas hasta el " &
Hoja2.Cells(ultimafila, 3)
Hoja1.Range("c30").Locked = True
Hoja1.Protect "xxx"

Application.ScreenUpdating = True
End Sub
 

Leer las respuestas

#1 PedroJuan
13/04/2010 - 09:24 | Informe spam
On 12 abr, 04:12, Robert Blanco wrote:
Hola:
Mi problema es el siguiente: Logré realizar una macro donde a través
de un botón se actualiza una tabla conectandose con una web(esta parte
lo hice con el grabador de macro), inclusive detecta cual es la ultima
fila y a partir de ella se actualiza. Bien, al hacer mis pruebas
"desactualizo" mis tablas y pruebo el botón actualizar. La
actualización se realiza perfectamente.
Pero, cuando la tabla ya está actualizada y al volver a apretar el
botón actualizar me sale el siguiente error: "Se ha producido el error
1004 en tiempo de ejecución" Error definido por la aplicación y el
objeto.
Y mi macro se queda en la linea
Selection.QueryTable.Refresh BackgroundQuery:=False

Mis consultas: ¿Como puedo hacer para controlar este error?, por
ejemplo que detecte que ya no necesita actualización y me salga una
msgbox que me indique el estado?
Como yo cree esta macro desde mi pc, con el grabador de macro, al
utilizar en otra Pc, ésta reconocerá la URL utilizada?

Este es el código que esta en mi botón ACtualizar:
Sub actualizar()
    Application.ScreenUpdating = False
    Dim ultimafila, ultimafilaactualizada As Long

    Hoja2.Select
    Cells(1, 5).Select
    ultimafila = Range("E65000").End(xlUp).Row
    ultimafila = ultimafila + 1
    Cells(ultimafila, 5).Select
    Selection.QueryTable.Refresh BackgroundQuery:=False

    Hoja2.Select
    Cells(1, 5).Select
    ultimafila = Range("E65000").End(xlUp).Row
    ultimafilaactualizada = ultimafila
    Hoja1.Select

    Hoja1.Unprotect "xxx"
    Hoja1.Range("c30").Locked = False
    Hoja1.Range("c30").Value = "Tablas actualizadas hasta el " &
Hoja2.Cells(ultimafila, 3)
    Hoja1.Range("c30").Locked = True
    Hoja1.Protect "xxx"

    Application.ScreenUpdating = True
End Sub



Puedes probar a incluir la sentencia On error exit sub o On error
resume next para soslayar el error

Salu2

Preguntas similares