Onderstaand heb ik een script waarbij in een lijst van foto's van downloaden adv de URL's
Ik zo graag de FolderName = locatie van downloads (waar de foto's terecht moeten komen) willen bepalen adv een Inputbox, zonder dat ik deze in het script hoeft aan te passen.
Daarnaast en de ws.Range ("A") en ws.Range ("E") zou ik ook graag dynamisch willen maken
Kolom A: komt de benaming te staan hoe het document moet heten
Kolom E: staat de url vermeld van de foto
Ik wil graag die Kolomen invullen adv een inputbox, omdat het niet altijd om Kolom A of E gaat, het kan ook wel eens B & C zijn, vandaar.
Ik zo graag de FolderName = locatie van downloads (waar de foto's terecht moeten komen) willen bepalen adv een Inputbox, zonder dat ik deze in het script hoeft aan te passen.
Daarnaast en de ws.Range ("A") en ws.Range ("E") zou ik ook graag dynamisch willen maken
Kolom A: komt de benaming te staan hoe het document moet heten
Kolom E: staat de url vermeld van de foto
Ik wil graag die Kolomen invullen adv een inputbox, omdat het niet altijd om Kolom A of E gaat, het kan ook wel eens B & C zijn, vandaar.
Code:
Const FolderName As String = "P:\MyDocuments'\"
Sub downloadJPGImagesTEST()
currentName = ActiveSheet.Name
Set ws = ActiveWorkbook.Sheets(currentName)
lLastRow = ws.Range("A" & Rows.Count).End(xlUp).Row
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP.6.0")
Set oBinaryStream = CreateObject("ADODB.Stream")
adTypeBinary = 1
oBinaryStream.Type = adTypeBinary
For i = 2 To lLastRow
sPath = FolderName & ws.Range("A" & i).Value & ".jpg"
sURI = ws.Range("E" & i).Value
On Error GoTo HTTPError
oXMLHTTP.Open "GET", sURI, False
oXMLHTTP.Send
aBytes = oXMLHTTP.responsebody
On Error GoTo 0
oBinaryStream.Open
oBinaryStream.Write aBytes
adSaveCreateOverWrite = 2
oBinaryStream.SaveToFile sPath, adSaveCreateOverWrite
oBinaryStream.Close
ws.Range("E" & i).Value = "File successfully downloaded as JPG"
NextRow:
Next
Exit Sub
HTTPError:
ws.Range("E" & i).Value = "Unable to download the file"
Resume NextRow
End Sub