Ich habe jetzt mir einen Code zusammengegoogelt, weil ich das auf anhieb nicht selber hingekriegt habe. Jedoch tut sich garnichts wenn ich dn Code ausführe. Es kommt nicht einmal eine Fehlermeldung.
Hier der entsprechende Code.
Link: https://www.vba-hexerei.de/2017/07/14/hy...nterladen/
Option Explicit
Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" _
Alias "URLDownloadToFileA" ( _
ByVal pCaller As Long, _
ByVal szURL$, _
ByVal szFileName$, _
ByVal dwReserved As Long, _
ByVal lpfnCB As Long) As Long
Sub HyperLinkKopieren()
Dim Hl As Hyperlink
Dim rngBereich As Range 'Bereich, der nach Hyperlinks durchsucht wird
Dim strQuellDat As String 'Pfad + Datei, die kopiert werden soll
Dim strDatName As String 'Dateiname bei Dateien, die im Internet stehen
'Speicherort angeben
Const strPfad As String = "C:" '<--- anpassen! - mit Backslash "\" abschließen!
'Existiert der Speicherort?
If Dir(strPfad, vbDirectory) = "" Then
MsgBox "Der angegebene Pfad ist ungültig!" & vbLf & vbLf & _
"Bitte richtigen Pfad im Code angeben!" & vbLf & vbLf & _
"Das Makro bricht ab!"
Exit Sub
End If
'Bereich, der nach Hyperlinks durchsucht wird angeben:
With ThisWorkbook.Worksheets("Tabelle1") '<--- anpassen!
Set rngBereich = .Range("A1:L20") '<--- anpassen!
End With
'Schleife über alle Hyperlinks in diesem Bereich
For Each Hl In rngBereich.Hyperlinks
strQuellDat = Hl.Address 'Quelldatei
Debug.Print "Quelldatei : " & strQuellDat
If LCase(Left(strQuellDat, 4)) = "http" Then 'Quelldatei online
strDatName = Split(strQuellDat, "/")(UBound(Split(strQuellDat, "/"))) 'Dateiname
Debug.Print URLDownloadToFile(0, strQuellDat, strPfad & strDatName, 0, 0) 'herunterladen
Else 'Quelldatei offline
FileCopy strQuellDat, strPfad & Dir(strQuellDat, vbNormal) 'Speichern unter
End If
Next
'aufräumen:
Set rngBereich = Nothing
Set Hl = Nothing
End Sub
Hier noch ein anderer kürzerer Code, den ich auch nicht zum laufen bringen kann. Er zeigt auch keine Wirkung, nichtmal eine Fehlermeldung.
Option Explicit
Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" _
Alias "URLDownloadToFileA" ( _
ByVal pCaller As Long, _
ByVal szURL As String, _
ByVal szFileName As String, _
ByVal dwReserved As Long, _
ByVal lpfnCB As Long) As Long
Public Sub machs()
Dim dieUrl As String
Dim dasZiel As String
Dim myResult
dieUrl = "https://opendata.dwd.de/climate_environment/CDC/observations_germany/climate/daily/kl/historical/tageswerte_KL_00001_19370101_19860630_hist.zip"
dasZiel = "C:"
myResult = URLDownloadToFile(0, dieUrl, dasZiel, 0, 0)
End Sub
Grüße
Hier der entsprechende Code.
Link: https://www.vba-hexerei.de/2017/07/14/hy...nterladen/
Option Explicit
Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" _
Alias "URLDownloadToFileA" ( _
ByVal pCaller As Long, _
ByVal szURL$, _
ByVal szFileName$, _
ByVal dwReserved As Long, _
ByVal lpfnCB As Long) As Long
Sub HyperLinkKopieren()
Dim Hl As Hyperlink
Dim rngBereich As Range 'Bereich, der nach Hyperlinks durchsucht wird
Dim strQuellDat As String 'Pfad + Datei, die kopiert werden soll
Dim strDatName As String 'Dateiname bei Dateien, die im Internet stehen
'Speicherort angeben
Const strPfad As String = "C:" '<--- anpassen! - mit Backslash "\" abschließen!
'Existiert der Speicherort?
If Dir(strPfad, vbDirectory) = "" Then
MsgBox "Der angegebene Pfad ist ungültig!" & vbLf & vbLf & _
"Bitte richtigen Pfad im Code angeben!" & vbLf & vbLf & _
"Das Makro bricht ab!"
Exit Sub
End If
'Bereich, der nach Hyperlinks durchsucht wird angeben:
With ThisWorkbook.Worksheets("Tabelle1") '<--- anpassen!
Set rngBereich = .Range("A1:L20") '<--- anpassen!
End With
'Schleife über alle Hyperlinks in diesem Bereich
For Each Hl In rngBereich.Hyperlinks
strQuellDat = Hl.Address 'Quelldatei
Debug.Print "Quelldatei : " & strQuellDat
If LCase(Left(strQuellDat, 4)) = "http" Then 'Quelldatei online
strDatName = Split(strQuellDat, "/")(UBound(Split(strQuellDat, "/"))) 'Dateiname
Debug.Print URLDownloadToFile(0, strQuellDat, strPfad & strDatName, 0, 0) 'herunterladen
Else 'Quelldatei offline
FileCopy strQuellDat, strPfad & Dir(strQuellDat, vbNormal) 'Speichern unter
End If
Next
'aufräumen:
Set rngBereich = Nothing
Set Hl = Nothing
End Sub
Hier noch ein anderer kürzerer Code, den ich auch nicht zum laufen bringen kann. Er zeigt auch keine Wirkung, nichtmal eine Fehlermeldung.
Option Explicit
Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" _
Alias "URLDownloadToFileA" ( _
ByVal pCaller As Long, _
ByVal szURL As String, _
ByVal szFileName As String, _
ByVal dwReserved As Long, _
ByVal lpfnCB As Long) As Long
Public Sub machs()
Dim dieUrl As String
Dim dasZiel As String
Dim myResult
dieUrl = "https://opendata.dwd.de/climate_environment/CDC/observations_germany/climate/daily/kl/historical/tageswerte_KL_00001_19370101_19860630_hist.zip"
dasZiel = "C:"
myResult = URLDownloadToFile(0, dieUrl, dasZiel, 0, 0)
End Sub
Grüße