79564
Goto Top

HTML File import in Excel Zelle

Hallo zusammen

Gibt es eine Möglichkeit auf einem HTML File den Code in eine einzelne Zelle zu füllen.
Wenn ich dann Änderungen im HTML Editor mache, speichere ich das File neu ab und die Idee wär dann, dass Excel diese Aktualisierungen übernehmen kann.

Das CSV kann ich dann in unserem Webshop importieren. Der Inhalt der HTML Files ist die Produktbeschreibung.

Danke
Grüsse Lupita

Content-Key: 299166

Url: https://administrator.de/contentid/299166

Printed on: April 23, 2024 at 07:04 o'clock

Mitglied: 114757
Solution 114757 Mar 15, 2016 updated at 15:15:41 (UTC)
Goto Top
Moin,
jupp geht ...
Folgender VBA-Code lädt den Inhalt einer HTML-Datei in die Zelle A2 des aktiven Sheets
Sub ImportHTMLFile()
    Set fso = CreateObject("Scripting.FileSystemObject")  
    ActiveSheet.Range("A2").Value = fso.OpenTextfile("C:\deinedatei.html",1).ReadAll()  
End Sub
Gruß jodel32
Member: MrCount
MrCount Mar 15, 2016 at 15:15:01 (UTC)
Goto Top
Hi,

also verstehe ich das richtig?
Du hast eine .html-Datei, also z.B.:

<html>
<head>
<title>Mein Titel</title>
</head>
<body>
Hier steht mein Text...
</body>
</html>

Diese Zeilen willst du in Excel IMportieren, damit du es als CSV wieder EXportierst, um es in den Webshop wieder zu IMportieren?

Wieso der Umweg über ein HTML-File?

Gruß
Mitglied: 114757
114757 Mar 15, 2016 updated at 15:17:24 (UTC)
Goto Top
Zitat von @MrCount:
Wieso der Umweg über ein HTML-File?
Er braucht vermutlich noch wysiwyg für HTML face-big-smile
Mitglied: 79564
79564 Mar 15, 2016 at 15:17:16 (UTC)
Goto Top
Ahh das hab ich schonmal hinbekommen. Musste nur noch ein YouTube Video schauen, VBA ist gefühlte 15 Jahre her..
Jetzt hab ich jedoch 250 html Files. Gehts auch ein wenig einfacher?
Mitglied: 114757
Solution 114757 Mar 15, 2016 updated at 15:30:06 (UTC)
Goto Top
Zitat von @79564:
Jetzt hab ich jedoch 250 html Files. Gehts auch ein wenig einfacher?
Wat, noch einfacher face-smile ?
Du willst alle Files ins Excel holen ? In die Zellen untereinander?

Das hier importiert automatisch alle HTML-Dateien eines Ordners den du in Zeile 2 des Skripts angibst, in die Zellen A2:AXdes aktuellen Sheets:
Sub ImportHtmlFiles()
    Const FOLDER = "C:\Ordner\htmldateien"  
    Set fso = CreateObject("Scripting.FileSystemObject")  
    With ActiveSheet
        For Each file In fso.GetFolder(FOLDER).Files
            If LCase(fso.GetExtensionName(file.Name)) = "html" Then  
                .Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Value = fso.OpenTextfile(file.Path, 1).ReadAll()  
            End If
        Next
    End With
End Sub
Wie wärs auch mit Powershell? Da sparst du dir den Umweg über Excel und könntest direkt deine CSV-Datei erstellen.
Mitglied: 79564
79564 Mar 15, 2016 at 16:20:05 (UTC)
Goto Top
Perfekt face-smile Ich verdanke dir echte Lebenszeit!
Mitglied: 114757
114757 Mar 15, 2016 updated at 16:31:39 (UTC)
Goto Top
Zitat von @79564:

Perfekt face-smile Ich verdanke dir echte Lebenszeit!
Schön face-smile Nur das Kommentar das du als Lösung markiert hast, ist wohl eher deplatziert und nicht die Lösung ... face-confused
Mitglied: 79564
79564 Mar 15, 2016 at 16:44:55 (UTC)
Goto Top
Habs korrigiert. Sorry
Kleine Frage noch.

Ich fülle nun die HTML Files wie folgt ein
Range("D1").Value = fso.OpenTextfile("C:\pfad\produkt0001.html", 1).ReadAll()  
Range("D2").Value = fso.OpenTextfile("C:\pfad\produkt0002.html", 1).ReadAll()  
Range("D3").Value = fso.OpenTextfile("C:\pfad\produkt0003.html", 1).ReadAll()  

Ist es auch möglich, das ganze nicht auf die Zelle zu fixieren, sondern 2 Felder Rechts der Artikelnummer.
Die Artikelnummer 0001 steht z.B. im Feld A1 und die Produktbeschreibung dann in D1.

Weisst du was ich meine?
Mitglied: 114757
114757 Mar 15, 2016 updated at 18:39:24 (UTC)
Goto Top
Du kannst von einer Zelle (Range) einen Offset von dieser Zelle angeben:

z.B. verweist folgender Ausdruck auf die 3 Spalte rechts von A1, also D1
Range("A1").Offset(0,3).Value  

War das richtig interpretiert?

Du kannst stattdessen auch mit Indexen arbeiten wenn du willst
Cells(1,4).Value
Der erste Wert ist die Zeile, der zweite die Spalte.

Aber wieso machst du für jedes HTML File eine extra Zeile im Code ?? Ich habe dir ja oben gezeigt wie das effektiver geht.
Mitglied: 79564
79564 Mar 15, 2016 updated at 20:25:18 (UTC)
Goto Top
Danke dir!
Umlaute ä ö ü werden leider nicht korrekt eingelesen... hast du da auch einen Tipp?
Mitglied: 114757
114757 Mar 15, 2016, updated at Mar 16, 2016 at 06:36:00 (UTC)
Goto Top
Zitat von @79564:

Danke dir!
Umlaute ä ö ü werden leider nicht korrekt eingelesen... hast du da auch einen Tipp?
Ja, du musst "OpenTextfile" nur mit den richtigen Parametern füttern:
fso.OpenTextfile("PFAD",1,False,-1)  
Die letzte -1 steht für Unicode-Kodierung.
Mitglied: 79564
79564 Mar 16, 2016 updated at 06:36:42 (UTC)
Goto Top
funktioniert leider nicht.

hier kommt ein error
fso.OpenTextfile("PFAD",1,False,1)  

So kommt kein Error, die Umlaute funktionieren aber auch nicht face-smile
fso.OpenTextfile("PFAD",1,1)  

-1 wie es hier steht klappt auch nicht.
http://www.w3schools.com/asp/met_opentextfile.asp
fso.OpenTextfile("PFAD",1,-1)  

wenn ich anstatt false einzutragen den wert leer lasse, da optional klappt es
so kommen die Zeichen chinesisch
fso.OpenTextfile("PFAD",1, ,-1)  

-2 = ohne Umlaute
0 = ohne Umlaute
1 = Error
2= Error


Mein Code sieht nun wie folgt aus:
Sub html_descriptions()

Set fso = CreateObject("Scripting.FileSystemObject")  

'Produkte  
Range("C2").Value = fso.OpenTextFile("C:\descriptions\produkt0001.html", 1, ,1).ReadAll()  

End Sub
Mitglied: 114757
114757 Mar 16, 2016 updated at 06:41:55 (UTC)
Goto Top
geht hier einwandfrei mit UTF-8 kodierten Files und
fso.OpenTextfile("PFAD",1,False,-1).ReadAll()

Ansonsten probier es mit

fso.OpenTextfile("PFAD",1,False,2).ReadAll()

Mach ich schon ewig so und hat mich nie im Stich gelassen.

Ansonsten haben deine Files eine seltene Kodierung.
Mitglied: 79564
79564 Mar 16, 2016 at 07:21:58 (UTC)
Goto Top
Hmm klappt auch nicht.
Meine HTML Files nutzen uft-8.
mein excel hat die version 2016.

ich glaub so gehts nicht mit dem OpenTextfile

http://developer.rhino3d.com/guides/rhinoscript/read_write_utf8/

muss was mit dem hier machen. aber wie ich das in die zelle bekomme. mal schauen.