• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

HTML parsen

Status
Niet open voor verdere reacties.

wouter1983

Gebruiker
Lid geworden
8 mei 2009
Berichten
38
Ik zit met het een probleem en ik twijfel of er een mogelijkheid is dit binnen excel te doen. Toch wil ik de vraag hier uitzetten.

Ik gebruik Excel 2013.

In een cel (bijv. A2) heb ik ongeparste html staan is het mogelijk om deze html in een andere cel geparsd te tonen?
Het liefst natuurlijk on the fly maar eventueel doormiddel van een macrobutton.

Ik wil de html tekst kunnen aanpassen in cel A2 en het resultaat kunnen zien in bijv. cel B2.
De reden dat ik dit in excel wil doen is omdat het een zeer groot aantal html teksten betreft.

Mijn dank is groot!

Groet, Wouter
 
Een voorbeeldbestand met de in te geven data en gewenste resultaat maakt een hoop duidelijk denk ik...
 
Excuses. Een voorbeeld leek mij overbodig. Hierbij een voorbeeld. In kolom A de html tekst/code. In kolom B dezelfde tekst/code maar dan geparst.
 

Bijlagen

Kan je helaas nog niet de gehele oplossing nog geven. Ik moet er namelijk vandoor :) (koopavond met het vrouwke ;))
Hier is een gedeelte. Moet alleen nog een Loop in en de cellen moeten nog samengevoegd worden...
Code:
Sub Spaarie()
Dim Ie As Object
Dim LastRow As Long
Set Ie = CreateObject("InternetExplorer.Application")
    Sheets.Add , Sheets(Sheets.Count)
    With Ie
        .Visible = True
        .Navigate "about:blank"
        .document.body.InnerHTML = Sheets(1).Range("A1").Value
        .document.body.CreateTextRange.ExecCommand "Copy"
        
        With Sheets(2)
            .Paste Sheets(2).Cells(1)
            .Range("A1:A" & .Range("A" & Rows.Count).End(xlUp).Row).Copy
        End With
        Sheets(1).Range("B" & Sheets(1).Range("B" & Rows.Count).End(xlUp).Offset(1).Row).PasteSpecial
        .Quit
    End With
    Application.DisplayAlerts = False
    Sheets(2).Delete
    Application.DisplayAlerts = True
End Sub
 
Dit ziet er al veel belovend uit :) Ik wou dat ik meer VB kon, IE aanroepen voor de parsing, simpel maar effectief!

Ik heb alvast geprobeerd de macro uit te voeren (ik ben geen held met VB maar ik hoopte zelf een loop en samenvoegen toe te voegen) maar ik krijg een Run Time Error 438.

Ik heb geprobeerd op te zoeken waardoor dit wordt veroorzaakt maar de uitleg is mij net even iets te technisch.
(Hier 2e comment)
Je zou denken dat het komt omdat we misschien een andere versie excel gebruiken maar in de code zie ik niets staan wat 2013 niet zou kunnen. Ik gebruik overigens wel een Engelse versie.

Ik heb IE10 geïnstalleerd staan.

In ieder geval alvast mijn dank voor de hulp tot dusver! Veel succes met de vrouw, enne... pas op de rug met het tillen van de aangekochte waren ;)
 
Laatst bewerkt:
Probeer deze lichtjes aangepaste versie eens.
Code:
Sub Spaarie()
Dim Ie As Object, a
Dim LastRow As Long
Set Ie = CreateObject("InternetExplorer.Application")
    Sheets.Add , Sheets(Sheets.Count)
    With Ie
        .Visible = True
        .Navigate "about:blank"
        .Document.body.InnerHTML = Sheets(1).Range("A1").Value
        a = .Document.body.innerText
        
        With Sheets(2)
        
        .Range("a1").Value = a
        .Range("A1:A" & .Range("A" & Rows.Count).End(xlUp).Row).Copy
        End With
        Sheets(1).Range("B" & Sheets(1).Range("B" & Rows.Count).End(xlUp).Offset(1).Row).PasteSpecial
        .Quit
    End With
    Application.DisplayAlerts = False
    Sheets(2).Delete
    Application.DisplayAlerts = True
End Sub
 
Of deze

Verwijzing Microsoft Html Object Library aanvinken

Code:
Function HtmlToText(sHTML) As String
    With New HTMLDocument
        .body.innerHTML = sHTML
        HtmlToText = .body.innerText
    End With
End Function

In B1
Code:
= HtmlToText(A1)
 
@wouter1983: Ik ben er zonder kleerscheuren van af gekomen hoor ;)

@WHER: Op deze wijze vervalt de opmaak wel, maar als dat geen probleem is voor Wouter...

@Rudi: Ook hier vervalt de opmaak en de 'enters' worden vierkantjes.
 
Bedankt allen voor het meedenken. De opmaak is echter wat in dit geval belangrijk is. De HTML code wordt aangepast en ik wil na de aanpassingen de opmaak kunnen controleren.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan