Problemas con objetos en VBA EXCEL

Tengo el siguiente código:

Sub obtenerDatos()
Dim IE As InternetExplorer
Dim i As Long
Dim url, captcha As String
Dim objCollection As Object
Dim objCollection1, objCollection2 As Object
url = "https://consulta.simit.org.co/Simit/verificar/contenido_verificar_pago_linea.jsp"
For i = 2 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
'se crea el objeto para poder abrir el navegador y enviar la direccion al mismo
Set IE = New InternetExplorer
IE.Visible = True
IE.Navigate url
While IE.Busy Or IE.ReadyState <> READYSTATE_COMPLETE
DoEvents
Wend
' se setean los objetos para encontrar cada control y trabajar sobre ellos
Set objCollection = IE.Document.getElementsByTagName("input")
Set objCollection2 = IE.Document.getElementsByTagName("a")
'se procede a enviar los datos al simit y capturar el valor del captcha
objCollection(9).Value = Sheets("CONDUCTOR").Cells(i, 1).Value
captcha = objCollection(14).Value
objCollection(15).Value = captcha
'se envia click al boton
objCollection2(1).Click
'se buscan la cantidad div para saber si se recorre la página o se asigna 0 al valor del comparendo
cargar:
Set objCollection1 = IE.Document.getElementsByTagName("div")
'MsgBox (objCollection1.Length)
'se busca el valor total a pagar
'MsgBox (Err.Description)
On Error GoTo cargar
If objCollection1.Length <> 3 Then
For x = 0 To objCollection1.Length
a = objCollection1(x).innerText
If CStr(a) = "Total a Pagar" Then
Sheets("CONDUCTOR").Cells(i, 12).Value = objCollection1(x + 1).innerText
Sheets("CONDUCTOR").Cells(i, 13).Value = Date
x = 1000
End If
Next
Else
Sheets("CONDUCTOR").Cells(i, 12).Value = 0
Sheets("CONDUCTOR").Cells(i, 13).Value = Date
x = 1000
End If
IE.Quit
Next
End Sub

Este proceso lo realiza cuantas celdas tenga que consultar el problema es que aveces me arroja el siguiente error en esta parte del código:

Set objCollection1 = IE.Document.getElementsByTagName("div")
'MsgBox (objCollection1.Length)
'se busca el valor total a pagar
'MsgBox (Err.Description)
On Error GoTo cargar
If objCollection1.Length <> 3 Then
For x = 0 To objCollection1.Length
a = objCollection1(x).innerText
If CStr(a) = "Total a Pagar" Then
Sheets("CONDUCTOR").Cells(i, 12).Value = objCollection1(x + 1).innerText
Sheets("CONDUCTOR").Cells(i, 13).Value = Date
x = 1000
End If
Next
Else
Sheets("CONDUCTOR").Cells(i, 12).Value = 0
Sheets("CONDUCTOR").Cells(i, 13).Value = Date
x = 1000
End If

Y la verdad no se por que sale cada tanto solo me presenta el problema con esa variable y no se que pueda ser, si hago la prueba de escritorio y vuelvo a setear la variable objcollection1 vuelve a trabajar sin problemas la verdad no se que pueda estar pasando.

1 respuesta

Respuesta
1

.

.

Según tu propia descripción: "capturaste el valor del captcha".

Por lo que re-pregunto: ¿Estás seguro que lo hiciste puesto que tal cosa suele ser MUY difícil?...

.

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas