Estoy tratando de armar un archivo donde al escribir los códigos de ciertos productos este los busque en páginas web y me traiga los precios asociados, la macro funciona ahora como esta pero el problema ocurre cuando un código no lo encuentra en la página me escribe el precio del código anterior. Alguien me puede ayudar a que si no encuentra ese código en la página el valor quede en blanco?
Este es el código que estoy usando.
Sub test()
Dim IE As New InternetExplorer
Dim precio1, precio2 As Variant
Dim doc As HTMLDocument
Do
DoEvents
Loop Until IE.readyState = READYSTATE_COMPLETE
Set doc = IE.document
On Error Resume Next
precio1 = doc.getElementsByClassName("fb-price")(0).innerText
If Right(precio1, 1) = ")" Then
largo = Len(precio1)
Range("B" & i) = Mid(precio1, 1, largo - 9)
Else
Range("B" & i) = precio1
End If
precio2 = doc.getElementsByClassName("fb-price")(1).innerText
If Mid(precio2, 1, 1) = "A" Then
Range("C" & i) = ""
Else
Range("C" & i) = precio2
End If
Next i
MsgBox "Proceso Terminado"
IE.Quit
End Sub
Gracias!
Featured Replies
Archivado
Este tema está ahora archivado y está cerrado a más respuestas.
Buenas tardes,
Estoy tratando de armar un archivo donde al escribir los códigos de ciertos productos este los busque en páginas web y me traiga los precios asociados, la macro funciona ahora como esta pero el problema ocurre cuando un código no lo encuentra en la página me escribe el precio del código anterior. Alguien me puede ayudar a que si no encuentra ese código en la página el valor quede en blanco?
Este es el código que estoy usando.
Sub test()
Dim IE As New InternetExplorer
Dim precio1, precio2 As Variant
Dim doc As HTMLDocument
Range("B2:C1000").Clear
Cantfila = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To Cantfila
IE.Visible = False
IE.navigate "https://www.elcorteingles.es/electronica/ofertas-electronica/tv/" & Range("A" & i).Text & "/"
Range("B6").Text
Do
DoEvents
Loop Until IE.readyState = READYSTATE_COMPLETE
Set doc = IE.document
On Error Resume Next
precio1 = doc.getElementsByClassName("fb-price")(0).innerText
If Right(precio1, 1) = ")" Then
largo = Len(precio1)
Range("B" & i) = Mid(precio1, 1, largo - 9)
Else
Range("B" & i) = precio1
End If
precio2 = doc.getElementsByClassName("fb-price")(1).innerText
If Mid(precio2, 1, 1) = "A" Then
Range("C" & i) = ""
Else
Range("C" & i) = precio2
End If
Next i
MsgBox "Proceso Terminado"
IE.Quit
End Sub
Gracias!