Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1532to1536
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

HTML Text aus Zwischenablage in Tabellenblatt einf

HTML Text aus Zwischenablage in Tabellenblatt einf
18.01.2017 11:29:53
DirkR
Hallo Excelgemeinde,
ich komme bei einer Sache nicht wirklich so richtig weiter und benötige Hilfe.
Wir arbeiten mit einem Datenverwaltungsprogramm, welches den Export bestimmter Daten in die Zwischenablage ermöglicht. Drücke ich diesen Export-Button werden eine ganze Reihe von Daten im HTML-Format in die Zwischenablage geschrieben.
Nun möchte ich in Excel gerne mit diesen Daten weiterarbeiten und dies möglichst direkt gefiltert. Füge ich allerdings den Text der Zwischenablage in eine Zelle ein, so habe ich den Text im HTML-Code vorliegen (siehe Beispielmappe, Tabelle1, Range("A1:B18")).
Beispielmappe:
https://www.herber.de/bbs/user/110663.xlsx
Ich habe zwar eine relativ brauchbare Zwischenlösung erstellen können. Allerdings sehr umständlich, so dass ich gerne einen völlig neuen Ansatz bräuchte.
So muss ich z. B. umständlich die Umlaute Ä, ä, Ü, Ü, Ö, ö und das ß aus z. B. ä (ä) umwandeln. Auch das Trennen der Daten mit Split finde ich sehr umständlich.
Ich habe versucht im Netz Beispiele zu finden, die sich mit dem Einfügen ganzer HTML Seiten beschäftigen... konnte dies allerdings für mein Beispiel nicht umsetzen.
Das lustige ist dabei, wenn ich den eingefügten Text aus Range("A1:B18") hier im Forumstext einfüge und auf Vorschau gehe, so werden die Daten zumindest was zwischen > und Hat jemand einen Ansatz und kann mir helfen?
Gruß DirkR

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

Betreff
Datum
Anwender
Anzeige
AW: HTML Text aus Zwischenablage in Tabellenblatt einf
18.01.2017 14:08:39
Tino
Hallo,
kannst mal so versuchen.
Option Explicit

Function Get_XML_ZW()
Dim ArDate(), n&
Dim oDom As Object, oList As Object, oEle As Object
Dim sPath$, sText$
Dim ZW As Object

'Hilfsdatei
sPath = IIf(Right$(ThisWorkbook.Path, 1) = "\", ThisWorkbook.Path, ThisWorkbook.Path & "\")
sPath = sPath & Format(Now, "dd_mm_yy hh_mm_ss") & ".xml"

Set ZW = CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")

With ZW
.GetFromClipboard
sText = .GetText
End With
Set ZW = Nothing

If InStr(sText, "<Person>") = 0 Or InStr(sText, "</Person>") = 0 Then
MsgBox "keine Daten in der Zwischenablage!"
Exit Function
End If

sText = Replace(sText, Chr(10), "")
sText = Replace(sText, Chr(13), "")
sText = "<?xml version=""1.0"" encoding=""ISO-8859-1""?>" & sText
ConvertToISO8859 sText, sPath

Set oDom = CreateObject("MSXML2.DOMDocument.6.0")
oDom.Load sPath
Set oList = oDom.SelectNodes("Person")

If oList.Length > 0 Then
Redim Preserve ArDate(1 To oList.Item(0).ChildNodes.Length + 1, 1 To 2)
For Each oEle In oList.Item(0).ChildNodes
n = n + 1
ArDate(n, 1) = oEle.nodeName
ArDate(n, 2) = oEle.Text
Next
End If
Set oDom = Nothing

'Hilfsdatei loeschen
Kill sPath

'Ausgabe
Tabelle1.Range("G1").Resize(Ubound(ArDate), Ubound(ArDate, 2)) = ArDate
End Function

Private Sub ConvertToISO8859(contents$, strFileOut$)
Dim Stm As Object
Set Stm = CreateObject("ADODB.Stream")
With Stm
.Open
.Type = 2
.Charset = "iso-8859-1"
.LineSeparator = 10
.WriteText contents, 1
.SaveToFile strFileOut, 2
.Close
End With
End Sub
Gruß Tino
Anzeige
AW: HTML Text aus Zwischenablage in Tabellenblatt einf
18.01.2017 15:07:32
DirkR
Hallo Tino,
habe die ersten Test abgeschlossen.
TOP!!! Sieht sehr gut aus!
Vielen Dank für deine Mühe!
Nun kann ich weiter basteln.. :-)
Gruß DirkR

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige