Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: eine PDF aus dem Internet herunterladen

eine PDF aus dem Internet herunterladen
22.07.2005 17:15:11
Reinhard
Hallo Wissende,
ich habe eine Liste mit Namen von PDFs so wie der:
ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a001.pdf
Wie sieht der VBA.Code aus damit die alle auf meiner Festplatte landen.
Ich könnte eine Schleife mit shell(IE,Name) Sendkeys(DateiSpeichernunter)
oder so basteln, aber geht das nicht eleganter?
Danke & Gruß
Reinhard
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: eine PDF aus dem Internet herunterladen
22.07.2005 17:41:48
Nepumuk
Hi,
na, wenn's nicht mehr ist:
Option Explicit

Private Declare 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 test()
    URLDownloadToFile 0, _
        "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a001.pdf", _
        "D:\VBA.pdf", 0, 0
End Sub

Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
Klasse *freu* o.w.T.
22.07.2005 17:45:47
Reinhard
Gruß
Reinhard
Du erinnerst mich an Obelix...
22.07.2005 18:04:39
Boris
Hi Nepumuk,
...der ist doch seinerzeit in den Pott mit dem Zaubertrank gefallen.
Hast du vielleicht versehentlich mal ein API-Buch verschluckt?
Grüße Boris
AW: Du erinnerst mich an Obelix...
22.07.2005 18:18:07
Nepumuk
Hi Boris,
nein, dann eher wie Asterix, der muss auch immer wieder mal nachfüllen. Ich habe nur drei Bücher über API. Zwei von Dan Appleman und eins von Microsoft. Demnächst soll noch das Buch von Michael Schwimmer dazu kommen (Ist zwar nicht reines API, aber dafür etwas Problemorientierter).
Gruß
Nepumuk
Anzeige
Code läuft ohne Fehler aber
22.07.2005 19:35:46
Reinhard
Hallo Nepumuk,
aber er lädt nix herunter. Ich habe a001.pdf schon auf der Platte deshalb testete ich mit a008.pdf , startete den Code. Auf der Festplatte gibt es keine 008.pdf und auch keine vba.pdf.
Gruß
Reinhard
AW: Code läuft ohne Fehler aber
22.07.2005 19:50:16
Peter
Servus Reinhard,
tschuldige bitte die Frage, aber warum so kompliziert? Geht doch auch einfacher siehe Bild.
Userbild
MfG Peter
Anzeige
AW: Code läuft ohne Fehler aber
22.07.2005 19:52:21
Nepumuk
Hi Reinhard,
die Adressen sind falsch.
Richtig:
"ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a001.pdf"
Falsch:
"ftp://ftp.fernuni-hagen.de/pub/pdfurz-broschueren/broschueren/a001.pdf"
Der ganze Code wie er funktioniert:
Option Explicit

Private Declare 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

Private objAdressen As clsAdressen

Public Sub prcStart()
    Dim intIndex As Integer
    Set objAdressen = New clsAdressen
    Call prcInitAdressen
    With objAdressen.prpAdressen
        For intIndex = 1 To .Count
            URLDownloadToFile 0, _
                .Item(intIndex), "D:\VBA" & CStr(intIndex) & ".pdf", 0, 0
        Next
    End With
    Set objAdressen = Nothing
End Sub

Private Sub prcInitAdressen()
    With objAdressen.prpAdressen
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a001.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a0019809.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a002.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a0029502.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a003.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a0030407.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a005.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a0059802.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a006.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a0069809.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a017.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a0179911.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a026.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a0260003.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a027.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a0279510.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a028.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a0289401.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a037.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a0379202.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b001.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b0010308.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b002.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b0020409.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b003.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b0039701.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b004.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b0049807.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b005.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b0050208.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b006.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b0069412.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b008.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b0089906.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b009.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b0099911.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b010.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b0109708.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b011.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b0119710.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b012.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b0129911.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b014.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b0140101.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b015.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b0150409.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b016.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b0160210.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b026.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b0260410.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b027.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b0279705.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b062.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b0620007.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b072.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b0729604.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/c003.pdf"
        .Add "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/c0030407.pdf"
    End With
End Sub

Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
jetzt läuft er bedeutend länger aber :-(
22.07.2005 20:14:21
Reinhard
Hallo Nepumuk,
da er so lange lief dachte ich schon es wäre geschafft, aber zufrüh gefreut.
Suche nach *.pdf zeigte mir dass nichts runtergeladen worden ist.
Übrigens dieses D:\vba..., ich habe nur eine C-Platte derzeit.
Gruß
Reinhard
AW: jetzt läuft er bedeutend länger aber :-(
22.07.2005 20:22:59
Nepumuk
Hi,
das kommt davon, wenn du drei Thread aufmachst zu ein und dem selben Thema. Also, hier nochmal die funktionierende Datei:
https://www.herber.de/bbs/user/24936.xls
Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
sorry, dnke dir, jetzt klappts o.w.T
22.07.2005 22:07:56
Reinhard
Gruß
Reinhard
;
Anzeige
Anzeige

Infobox / Tutorial

PDF aus dem Internet herunterladen mit VBA


Schritt-für-Schritt-Anleitung

Um eine PDF aus dem Internet herunterzuladen, kannst du den URLDownloadToFile-Befehl in VBA verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" und wähle Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Option Explicit
    
    Private Declare 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 DownloadPDF()
       Dim url As String
       Dim filePath As String
    
       url = "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a001.pdf"
       filePath = "C:\Pfad\zu\deinem\Ordner\a001.pdf" ' Ändere den Pfad entsprechend
    
       URLDownloadToFile 0, url, filePath, 0, 0
    End Sub
  4. Ändere den filePath zu dem Ordner, in dem du die PDF speichern möchtest.

  5. Führe das Makro aus: Gehe zu Run > Run Sub/UserForm oder drücke F5.

Du kannst die URLs auch in einer Schleife durchlaufen, um mehrere PDFs herunterzuladen.


Häufige Fehler und Lösungen

  • Fehler: "urldownloadtofile vba not working"
    Lösung: Überprüfe, ob die URL korrekt ist. Oftmals ist ein Tippfehler in der Adresse der Grund für das Problem.

  • Fehler: Keine Datei wird heruntergeladen
    Lösung: Stelle sicher, dass der angegebene filePath korrekt ist und dass du Schreibrechte für das Zielverzeichnis hast.

  • Fehler: "VBA Code läuft ohne Fehler, aber die PDF wird nicht heruntergeladen"
    Lösung: Teste die URL im Browser, um sicherzustellen, dass der Link funktioniert.


Alternative Methoden

Falls du keine VBA-Lösungen verwenden möchtest, gibt es auch alternative Methoden, um PDFs herunterzuladen:

  1. Manuelles Herunterladen: Klicke mit der rechten Maustaste auf den Link der PDF und wähle "Ziel speichern unter".
  2. Browser-Add-ons: Nutze Browser-Plugins, die das Herunterladen von PDFs erleichtern.

Praktische Beispiele

Hier ist ein einfaches Beispiel, das mehrere PDFs von der Fernuni-Hagen herunterlädt:

Public Sub DownloadMultiplePDFs()
    Dim urls As Variant
    Dim filePath As String
    Dim i As Integer

    urls = Array("ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a001.pdf", _
                 "ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a002.pdf")

    For i = LBound(urls) To UBound(urls)
        filePath = "C:\Pfad\zu\deinem\Ordner\a" & Format(i + 1, "000") & ".pdf"
        URLDownloadToFile 0, urls(i), filePath, 0, 0
    Next i
End Sub

Tipps für Profis

  • Verwende Fehlerbehandlung: Füge Fehlerbehandlungsroutinen hinzu, um sicherzustellen, dass dein Code robust ist.

  • Automatisiere den Prozess: Du kannst auch Excel-Listen nutzen, um eine Vielzahl von URLs zu laden und herunterzuladen.

  • Überprüfe regelmäßig Links: Da URLs sich ändern können, ist es sinnvoll, regelmäßig deine Links zu überprüfen, um sicherzustellen, dass sie noch aktuell sind.


FAQ: Häufige Fragen

1. Wie lade ich PDFs aus einer Excel-Liste herunter?
Du kannst die URLs in einer Excel-Tabelle speichern und dann eine Schleife in VBA verwenden, um die PDFs herunterzuladen.

2. Gibt es eine Möglichkeit, mit VBA mehrere Dateien gleichzeitig herunterzuladen?
Ja, du kannst mehrere URLs in einem Array speichern und mit einer Schleife die Downloads nacheinander ausführen.

3. Welche Excel-Version benötige ich für die Nutzung von VBA?
Du benötigst eine Excel-Version, die VBA unterstützt, was bei den meisten Versionen der Fall ist (Excel 2007 und neuer).

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige