Excel - Error en ejecucion de macros

 
Vista:
sin imagen de perfil

Error en ejecucion de macros

Publicado por Esteban Gabriel (4 intervenciones) el 23/03/2016 05:44:25
Hola amigos estoy haciendo un presupuesto automatico en excel pero cada vez que actualizo el tipo de cambio siempre me sale error y me borra los datos del tipo de cambio, le doy fnalizar, lo vuelvo a actualizar y recien me sale no se porque me sale este error, cada vez que pongo depurar me bota la linea "i.rows" le dy el archivo, espero me puedan ayudar.
Muchas gracias de antemano
saluds.xlsm
La clave del archivo excel es g4b0
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: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Error en ejecucion de macros

Publicado por Antoni Masana (2464 intervenciones) el 23/03/2016 12:33:52
Tienes un pequeño error

1
2
3
4
5
6
7
8
9
Sub actTC()
    Dim xml, HtmlDoc, Tbl, i, Q%, j%, R%
    ...
    For Each i In xml
        If i.className = "class=""form-table""" Then Exit For
    Next
    Set Tbl = i.Rows
   ...
End sub

Versión corregida.

1
2
3
4
5
6
7
8
9
Sub actTC()
    Dim xml, HtmlDoc, Tbl, i, a, Q%, j%, R%
   ...
    For Each i In xml
        If i.className = "class=""form-table""" Then Set a=i: Exit For
    Next
    Set Tbl = a.Rows
   ...
End Sub

Correcciones:

1.- Añado una variable: a
2.- Antes de salir del FOR guardo el valor de i en la variable a porque fuera del for i pierde su valor
3.- utilizo la variable a para asignar Tbl

Y con esto la macro funciona sin dar errores

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
sin imagen de perfil

Error en ejecucion de macros

Publicado por Esteban Gabriel (4 intervenciones) el 23/03/2016 15:05:11
Garcias por tu respuesta Antoni Masana
Cambie la estructura como me dijiste, pero cierro y abro la el excel, ejecuto la macro y me sigue saliendo error, que se puede hacer, necesito ayuda por favor para que no me salga ese error.
Gracias
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
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Error en ejecucion de macros

Publicado por Antoni Masana (2464 intervenciones) el 23/03/2016 16:55:19
En este momento no puedo probarlo pero la única razón que se me ocurre que pueda estar pasando es ....

Después de modificar la macro ¿Has guardado el documento?

Cuando vuelves a abrir el documento ¿Esta la macro corregida o sigue estando como antes?
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
sin imagen de perfil

Error en ejecucion de macros

Publicado por Esteban Gabriel (4 intervenciones) el 23/03/2016 21:47:05
Yo modifico la macro tal cual me lo respondiste, lo ejecuto y me sale de nuevo el error, no lo guardo, cierro y abro de nuevo el archivo, cambio la macro que me diste, lo guardo, lo cierro, lo abro y ejecuto la macro pero nada no se que pasa!!
Espero puedas ayudarme
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
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Error en ejecucion de macros

Publicado por Antoni Masana (2464 intervenciones) el 24/03/2016 07:57:35
He realizado la prueba y evidentemente da un error.

Modifico la Macro, la pruebo, lo guardo, cierro el Excel, lo vuelvo a abrir y la primera ejecución da un error, finalizo la macro y la vuelvo a ejecutar y funciona perfectamente.


Curiosidad curiosa del Excel

La MACRO falla SOLO en la primera ejecución al abrir el Excel, si cierro el documento y lo vuelvo a abrir no se produce el ERROR hasta que no cierro el EXCEL.


Conclusión:

Te incluyo el trozo de código que te tienes que revisar, yo no se lo que hace, ni se que pretendes hacer.

Entre la línea 1 y la 23 haces algo que al ejecutar la macro que al ejecutarla por segunda vez hace que funcione.

Cuando ejecutas las MACRO por primera vez al llegar a la linea 23 y asignar xml no lo hace bien, el FOR no se ejecuta y el Set Tbl da error. Cuando se vuelve a ejecutar ya funciona bien.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Sub actTC()
    Dim xml, HtmlDoc, Tbl, i, Guarda, Q%, j%, R%
    Dim l_Obj As ListObject
    Dim mm%, yy%, nextTime!
 
    Application.ScreenUpdating = False
    mm = Month(Range("f_Ref")): yy = Year(Range("f_Ref"))
 
    Set l_Obj = ActiveSheet.ListObjects(1)
    If Not l_Obj.DataBodyRange Is Nothing Then l_Obj.DataBodyRange.Delete
 
    Set xml = CreateObject("Microsoft.xmlHttp")
    nextTime = 0.5 + Timer: While Timer < nextTime: DoEvents: Wend
 
    xml.Open "POST", "http://ww1.sunat.gob.pe/cl-at-ittipcam/tcS01Alias", False
    xml.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    xml.Send "mes=" & mm & "&anho=" & yy
 
    nextTime = 0.5 + Timer: While Timer < nextTime: DoEvents: Wend
    Set HtmlDoc = CreateObject("HTMLFile")
    HtmlDoc.body.innerHTML = xml.responseText
 
    Set xml = HtmlDoc.getElementsByTagName("table")
    For Each i In xml
        If i.className = "class=""form-table""" Then
           Set Guarda = i: Exit For
        End If
    Next
    Set Tbl = Guarda.Rows
    Q = Tbl.Length - 1

Si no te contesto es porque estoy de vacaciones y no vuelvo hasta el día 30.

Espero que lo que te cuento te ayude a encontrar el problema.

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