Colocar progreso de macro en barra de estado
Tengo un código, deseo que me de el progreso en la barra de estado, todo funciona bien, pero no logro que calcule el numero de celdas recorridas, es decir siempre muestra el avance como: 0 de 3 y 0% de progreso, la variable que deseo definir es "c", que a mi parecer es la que no esta calculando, les dejo mi código y agradezco su ayuda.
Option Explicit
Sub ExtraerDatos()
Dim IE As Object
Dim UltimaFila As Long, c As Long
Dim elementsTable As Object, elementsTableDiv As Object
Dim Celda As Range
Dim colFiles As New Collection
Application.ScreenUpdating = False
Application.Cursor = xlWait
Set IE = CreateObject("InternetExplorer.Application")
Let UltimaFila = Cells(Rows.Count, 1).End(xlUp).Row
IE.navigate "https://coresalud.msp.gob.ec/coresalud/app.php/publico/rpis/afiliacion/consulta"
Do Until IE.readyState = 4
DoEvents
Loop
For Each Celda In Range("A1:A" & UltimaFila)
Application.StatusBar = " Progreso " & c & " de " & UltimaFila & ".... " & Format(c / UltimaFila, "0%") & " completo"
Application.Wait (Now + TimeValue("0:00:01"))
With IE
.Document.getElementById("identificacion").Value = Celda.Value
.Document.getElementById("fechaconsulta").Value = "04-01-2019"
.Document.getElementsByTagName("button")(1).Click
End With
Do While elementsTableDiv Is Nothing
Set elementsTableDiv = IE.Document.getElementsByClassName("table-responsive")
DoEvents
Loop
Do While elementsTableDiv(0) Is Nothing
DoEvents
Loop
Set elementsTable = elementsTableDiv(0).getElementsByTagName("TABLE")
Range("B" & Celda.Row).Value = elementsTable(0).Rows(1).Cells(0).innerText
Range("C" & Celda.Row).Value = elementsTable(0).Rows(1).Cells(1).innerText
Range("D" & Celda.Row).Value = elementsTable(0).Rows(1).Cells(2).innerText
Range("E" & Celda.Row).Value = elementsTable(0).Rows(1).Cells(3).innerText
Set elementsTableDiv = Nothing
Set elementsTable = Nothing
Next Celda
Application.StatusBar = False
IE.Quit
Set IE = Nothing
Application.ScreenUpdating = True
Application.Cursor = xlDefault
MsgBox "Proceso finalizado"
End Sub
1 respuesta
Respuesta de Abraham Valencia
1
