Html als Csv speichern

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Html als Csv speichern
von: Christoph Zahn
Geschrieben am: 07.08.2015 16:37:03

Hallo
ich nochmal.
Habe folgendes Makro gefunden und angepasst für mich.


Sub ACSVDateinerstellenAusHTML()
        Dim csvPfad As String
        Dim csvDatei As String
        csvPfad = "C:\Users\acer\Desktop\html\TEST\CSV\"     '<- Pfad für csv-Dateien '\' am  _
Ende!
        Application.SheetsInNewWorkbook = 1
        Set FS = CreateObject("Scripting.FileSystemObject")
        Set Folder = FS.GetFolder("C:\Users\acer\Desktop\html\TEST\")
        Zae2 = 1
        For Each file In Folder.Files
            If file.Name Like "*.html*" Then
                csvDatei = Left$(file.Name, InStr(file.Name, ".") - 1) & ".csv"
                Set wb = Workbooks.Open(file.Path, ReadOnly:=True, UpdateLinks:=False)
                Set wb2 = Workbooks.Add
                wb.Sheets(1).Range("A110:B150").NumberFormat = "0"
                wb.Sheets(1).Range("A110:B150").Copy wb2.Sheets(1).Range("A1")
                wb2.SaveAs csvPfad & "Tabelle" & Zae2, FileFormat:=xlCSV
                wb2.Close False
                wb.Close False
              Zae2 = Zae2 + 1
            End If
        Next
    End Sub
Ich brauche aber keinen bestimmten Bereich als Csv Format:
Es kann die ganze Datei als Csv Format gespeichert werden(ohne geöffnet zu werden)
Erhoffe mir das das speichern dann etwas schneller geht.
Jetzt dauert es relativ lang dadurch das er jede html Datei erst öffnet und einen bestimmten Bereich kopiert.
Gruß
Christoph

Bild

Betrifft: AW: Html als Csv speichern
von: Michael
Geschrieben am: 07.08.2015 17:15:50
Hi Christoph,
wenn die html-Datei bereits "wohlformatiert" ist, etwa wie diese reine Zahlenausgabe von random.org:
https://www.random.org/integers/?num=100&min=1&max=100&col=10&base=10&format=plain&rnd=new
dann reicht eigentlich umbenennen beim Kopieren:

Sub quickshell()
Dim csvPfad As String, htmPfad As String
csvPfad = "C:\Users\acer\Desktop\html\TEST\CSV\"
htmPfad = "C:\Users\acer\Desktop\html\TEST\"
MsgBox Shell("cmd /C " & "copy " & htmPfad & "*.htm* " & csvPfad & "*.csv", vbHide)
End Sub
Die msgbox gibt das Ergebnis der shell aus, das ist in der Regel irgendeine krumme Zahl (z.B. 365), nämlich die Thread-Nr. des Systems. Weiteres in der Hilfe zu Shell.
Schöne Grüße,
Michael

Bild

Betrifft: AW: Html als Csv speichern
von: Christoph Zahn
Geschrieben am: 07.08.2015 17:50:54
Leider klappt das nicht ganz so wie es soll.
Hier einmal die HTML Datei
https://www.herber.de/bbs/user/99412.html
Ergebniss soll so aussehen:
https://www.herber.de/bbs/user/99413.txt
Außer das wie gesagt nicht der bestimmte Bereich kopiert werden muss.
Wichtig ist halt auch das die Zahlen nachher im CSV Format als Zahl formatiert sind.
Gruß Christoph

Bild

Betrifft: AW: Html als Csv speichern
von: Christoph Zahn
Geschrieben am: 07.08.2015 21:26:21
Hey
Kann niemand helfen?
Gruß
Christoph

Bild

Betrifft: HTML-Import - wer anders bitte
von: Michael
Geschrieben am: 09.08.2015 18:59:15
Hi Christoph,
ich habe mir die Sache nochmal angesehen.
X bietet ja diverse Funktionen, um Daten zu importieren (unter Daten/externe Daten abrufen), aber mit den dort vorhandenen Funktionen konnte ich die lokale htm-Datei aus welchen Gründen auch immer nicht direkt importieren.
Ich stelle die Frage mal wieder auf "offen".
Schöne Grüße,
Michael

Bild

Betrifft: wenn keiner mag, dann TAGs auswerten
von: Michael
Geschrieben am: 11.08.2015 01:07:11
Hallo Christoph,
das war ein hartes Stück Arbeit!
Ich weiß nicht, ob Dir das Ergebnis paßt, derweil die Ausgabe etwas anders aussieht als Deine Vorgabe, aber dafür rennt das Ding um einen Faktor 10 schneller.
Allerdings habe ich es mit X2000 programmiert, aber es sollte nicht groß was drinstecken, was mit 2013 nicht auch funzt.
Die Datei: https://www.herber.de/bbs/user/99476.xls
In der Sub, mit der der Button verknüpft ist, mußt Du bitte die Pfade auf Deine Bedürfnisse anpassen.
Der Code sieht leider reichlich unaufgeräumt auf, aber Du wirst verstehen, daß ich nach x Stunden Arbeit keinen Bock mehr habe, ihn aufzuhübschen bzw. weiter zu optimieren.
Mit einiger Programmiererfahrung wirst Du trotzdem nachvollziehen können, was ich da treibe.
Grundsätzlich möchte ich noch anmerken, daß es sich weder bei Deiner noch bei meiner CSV um eine "echte" CSV-Datei handelt, sondern vielmehr um eine reine Textdatei, die an relativ unvorhersehbaren Stellen Daten enthält.
Man kann sie trotz allem wieder aufdröseln und in eine Übersicht importieren, aber da würde ich es vorziehen, das neue Makro so umzustricken, daß alle Daten einigermaßen geordnet direkt untereinander auf ein Tabellenblatt geschrieben werden: ohne den Umweg über CSVs.
Happy Exceling,
Michael

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Html als Csv speichern"