Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Per Excel VBA HTTP LINK öffnen und Files einfügen

Forumthread: Per Excel VBA HTTP LINK öffnen und Files einfügen

Per Excel VBA HTTP LINK öffnen und Files einfügen
25.07.2014 14:43:00
Andreas
Hallo Leute,
hab mal wieder eine Frage zu Excel VBA.
Ich möchte per VBA einen Netzwerk Ordner öffnen und die darin befindlichen Excel Dateien kopieren um sie dann unter einen HTTP LINK zu Speichern.
Hab nun schon recht viel rum probiert und gelesen, aber leider ohne Erfolg.
Der Http LINK ist ein Werksinternes Internet in den Dokumente abgelegt werden können.
Den LINK kann man auch mit dem Windows Explorer öffnen. In der Adressleiste wird dann der http LINK angezeigt.
Habt Ihr eine Idee wie ich das lösen kann?
Explorer LINK sieht so aus (Firmenname wurde entfernt)
-http://ccs.xxxx.corp/sites/Axxx_OH/Documents
Der Internet Explorer LINK sieht dann so aus:
-http://ccs.xxxx.corp/sites/Axxx_OH/Documents/Forms/AllItems.aspx?RootFolder=%2Fsites%2FA350%5FOH%2FDocuments
Grüße
Andreas

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Per Excel VBA HTTP LINK öffnen und Files einfügen
25.07.2014 17:09:09
Martin
Hallo Andreas,
da keiner antwortet, versuche ich mal zu helfen. Lade die Datei lokal auf deinen Rechner, bevor du die Datei hochlädst:
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, "https://www.herber.de/forum/", _
"D:\Eigene Dateien\Eigene Webs\TEST\Herbers_Forum.htm", 0, 0
End Sub
Das war der einfach Teil, bleibt noch das Problem mit dem Upload. Ein Upload per FTP ist mit VBA problemlos möglich. Die ASPX-Endung zeigt, dass es sich um einen Windows-Server handelt. Wenn Du eine ASP-Site hochladen kannst, dann mache einen Seite mit einem Upload-Formular (siehe http://msdn.microsoft.com/de-de/library/aa479405.aspx). Der Internet Explorer kann sehr bequem mit VBA angesteuert werden, so kannst du die ASPX-Site per VBA ausfüllen und den Upload starten.
Viele Grüße
Martin

Anzeige
AW: Per Excel VBA HTTP LINK öffnen und Files einfügen
28.07.2014 11:25:41
Andreas
Hallo Martin,
vielen Dank ersteinmal für deine Hilfe.
Was ich nicht ganz verstehe ist, warum ich die Datei lokal speichen muss. Die Dateien (Mehrere) liegen auf einem SFS Server von dem ich auch per VBA gut zugreifen und die einzelnen Dateien öffnen kann.
Muss ich die files denn einzeln auf den FTP hochladen oder kann ich auch mehrere per VBA markieren und Koppieren?
Grüße
Andreas
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

HTTP Links mit Excel VBA öffnen und Dateien hochladen


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Neues Modul erstellen: Klicke auf Einfügen > Modul, um ein neues Modul hinzuzufügen.

  3. Code einfügen: Kopiere den folgenden Code in das Modul. Dieser Code verwendet die Funktion URLDownloadToFile, um eine Datei von einem HTTP-Link herunterzuladen.

    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 DownloadFile()
        URLDownloadToFile 0, "http://dein-http-link.de/datei", _
        "C:\Pfad\zur\deiner\Datei.ext", 0, 0
    End Sub
  4. HTTP Link anpassen: Ersetze http://dein-http-link.de/datei mit dem tatsächlichen HTTP-Link und C:\Pfad\zur\deiner\Datei.ext mit dem Zielpfad auf deinem Rechner.

  5. Makro ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle DownloadFile und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Datei wird nicht heruntergeladen: Überprüfe, ob der HTTP-Link korrekt ist und ob du die nötigen Berechtigungen hast, um auf die Datei zuzugreifen.
  • VBA fehlerhaft: Stelle sicher, dass du die richtige URL und den richtigen Zielpfad angegeben hast. Eine falsche Adresse führt zu einem Laufzeitfehler.

Alternative Methoden

Eine andere Möglichkeit, um Dateien per VBA hochzuladen, ist die Verwendung eines FTP-Uploads. Hier ist ein Beispiel, wie du mit VBA eine Verbindung zu einem FTP-Server herstellen und eine Datei hochladen kannst:

Sub UploadFile()
    Dim FTPAddress As String
    Dim UserName As String
    Dim Password As String
    Dim FilePath As String
    Dim Command As String

    FTPAddress = "ftp://dein-ftp-server.de"
    UserName = "deinBenutzername"
    Password = "deinPasswort"
    FilePath = "C:\Pfad\zur\deiner\Datei.ext"

    Command = "cmd.exe /c ftp -s:ftp_commands.txt"

    Open "ftp_commands.txt" For Output As #1
    Print #1, "open " & FTPAddress
    Print #1, UserName
    Print #1, Password
    Print #1, "put " & FilePath
    Print #1, "bye"
    Close #1

    Shell Command
End Sub

Praktische Beispiele

Um eine SFS-Datei zu öffnen, die sich auf einem Netzwerk-Ordner befindet, kannst du die folgenden Schritte ausführen:

  1. Verwende den Workbooks.Open-Befehl in deinem VBA-Code:

    Workbooks.Open "\\SFS-Server\Ordner\deineDatei.xlsx"
  2. Um mehrere Dateien gleichzeitig zu verarbeiten, kannst du eine Schleife verwenden, die durch einen Ordner iteriert und die Dateien öffnet:

    Dim MyFolder As String
    Dim MyFile As String
    
    MyFolder = "\\SFS-Server\Ordner\"
    MyFile = Dir(MyFolder & "*.xlsx")
    
    Do While MyFile <> ""
        Workbooks.Open MyFolder & MyFile
        MyFile = Dir
    Loop

Tipps für Profis

  • Nutze Error Handling in deinem VBA-Code, um Probleme während des Downloads oder Uploads zu identifizieren.
  • Verwende Application.ScreenUpdating = False, um die Leistung zu verbessern, wenn du mehrere Dateien bearbeitest.
  • Prüfe regelmäßig die Verfügbarkeit des HTTP-Links, um sicherzustellen, dass deine Anwendung reibungslos funktioniert.

FAQ: Häufige Fragen

1. Muss ich die Dateien zuerst lokal speichern, bevor ich sie hochlade?
Ja, es ist ratsam, die Dateien lokal zu speichern, bevor du sie hochlädst, um sicherzustellen, dass der Prozess reibungslos verläuft.

2. Kann ich mehrere Dateien gleichzeitig hochladen?
Ja, du kannst mehrere Dateien gleichzeitig hochladen, indem du eine Schleife in deinem VBA-Code implementierst, die alle gewünschten Dateien bearbeitet.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige