Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro HTML Import
#1
Hallo Freunde, 

ich möchte mit einem Makro Daten von einer zuvor heruntergeladenen HTML-Seite importieren. 
Da ich das täglich machen möchte, sollte der Zielpfad abhängig vom Datum sein. 

Also -> C:\Dokumente\HeutigesDatumInJJJJMMDD\Website.html

Das "Datum", also der sich verändernde Pfad bekomme ich so: 

="C:\Dokumente\ & =TEXT(HEUTE();"JJJJMMTT") & "Website.html"

Dieser wird als String bei Quelle = Web.Page(File.Contents(Datum)) eingesetzt.

Nach meinem Verständnis müsste das funktionieren. Wenn ich den Pfad da einfach nur reinkopiere, geht es.. 

Code:
Dim Datum As String
   Datum = Worksheets("Infos").Cells(4, 3).Value
'

'
   ActiveWorkbook.Queries.Add Name:="PRICE", Formula:= _
       "let" & Chr(13) & "" & Chr(10) & "    Quelle = Web.Page(File.Contents(Datum))," & Chr(13) & "" & Chr(10) & "    Data0 = Quelle{0}[Data]," & Chr(13) & "" & Chr(10) & "    #""Geänderter Typ"" = Table.TransformColumnTypes(Data0,{{""Name"", type text}, {""Price"", type number}, {""Change"", type number}, {""Change %"", P" & _
       "ercentage.Type}, {""High"", type number}, {""Low"", type number}, {""Volume"", type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Geänderter Typ"""
   ActiveWorkbook.Worksheets.Add
   With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
       "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=PRICE;Extended Properties=""""" _
       , Destination:=Range("$A$1")).QueryTable
       .CommandType = xlCmdSql
       .CommandText = Array("SELECT * FROM [PRICE]")
       .RowNumbers = False
       .FillAdjacentFormulas = False
       .PreserveFormatting = True
       .RefreshOnFileOpen = False
       .BackgroundQuery = True
       .RefreshStyle = xlInsertDeleteCells
       .SavePassword = False
       .SaveData = True
       .AdjustColumnWidth = True
       .RefreshPeriod = 0
       .PreserveColumnInfo = True
       .ListObject.DisplayName = "PRICE"
       .Refresh BackgroundQuery:=False
   End With
   Windows("PERSONAL.xlsb").Activate
   Windows("Mappe1").Activate
End Sub

Vielleicht kann mir in die Richtung jemand helfen. Auch ein Erklärung, was ich da überhaupt genau aufgezeichnet habe, wäre super. 
Ich steig nicht wirklich durch, was was bewirkt. 

Beste Grüße!
Antworten Top
#2
Hallo,

zum Beispiel so:

Code:
'Prüfen ob es in C\Dokumente den Ordner mit dem Datum gibt
If Dir("C:\Dokumente\" & Format(Date, "YYYYMMDD"), vbDirectory) = "" Then
   'wenn nein, dann Unterordner mit dem Datum anlegen
   MkDir ("C:\Dokumente\" & Format(Date, "YYYYMMDD"))
End If

'hier kannst du dann speichern
'Pfad fürs Speichern: "C:\Dokumente\" & Format(Date, "YYYYMMDD") & "Webseite.html"
Der Ordner Dokumente im Laufwerk C muss aber auch vorhanden sein.

Gruß Werner

Hallo,

das hier:

Code:
Public Sub aaa()
'Prüfen ob es in C\Dokumente den Ordner mit dem Datum gibt
If Dir("C:\Dokumente\" & Format(Date, "YYYYMMDD"), vbDirectory) = "" Then
   'wenn nein, dann Unterordner mit dem Datum anlegen
   MkDir ("C:\Dokumente\" & Format(Date, "YYYYMMDD"))
End If

'hier kannst du dann speichern
'Speicherpfad "C:\Dokumente\" & Format(Date, "YYYYMMDD") & "\" & "Webseite.html"
End Sub
Hatte den Backslash nach dem Unterordner vergessen.

Gruß Werner
Antworten Top
#3
Hallo Werner, 

danke für deine schnelle Antwort!
Ich glaube aber ich habe mich falsch ausgedrückt: 
Die Ordnerstruktur zu erstellen, ist nicht das Problem. 

Der Datenimport funktioniert nicht. 
Über "C:\Dokumente\" & Format(Date, "YYYYMMDD") & "\" & "Webseite.html" habe ich es versucht.

Leider wurde der Pfad aber nicht erkannt und der Import ist fehlgeschlagen.

Zudem finde ich keine Anleitung für einen HTML Datenimport in VBA. 
Daher muss ich mich an den aufgezeichneten Code halten, den ich leider nicht wirklich verstehe. 


Beste Grüße
Felix
Antworten Top
#4
Hallo Felix,

wenn DU mal die Anführungszeichen durchzählst könntest Du feststellen, dass die Stelle mit Datum zu einem String gehört und nicht direkt zu einem Parameter oder einer variable.

"let" & Chr(13) & "" & Chr(10) & " Quelle = Web.Page(File.Contents(Datum)),"

Du müsstest den String auftrennen um Datum als Variable verwenden zu können.

"let" & Chr(13) & "" & Chr(10) & " Quelle = Web.Page(File.Contents(" & Datum & ")),"
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste