Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema WebBrowser
BildScreenshot zu WebBrowser WebBrowser-Seite mit Beispielarbeitsmappe aufrufen

mittels VBA background color aus IE auslesen

Betrifft: mittels VBA background color aus IE auslesen von: Thomas
Geschrieben am: 05.08.2014 11:38:20

Hallo Ihr Lieben,

gibt es eine Möglichkeit in einer InternetExplorer.Application nach

style="background-color:#00dd00"

zu suchen und den colorcode in eine Zelle zu schreiben? Ich hab es mit

WebBrowser1.Document.body.innerHTML
WebBrowser1.Document.body.outerHTML
WebBrowser1.Document.body.innerText
WebBrowser1.Document.body.outerText

versucht, aber das wird nicht gefunden. Der Quellcode davor und danach wird problemlos ausgegeben. Hat jemand eine Idee?

  

Betrifft: Wenn ich deine Frage richtig interpretiere, ... von: Luc:-?
Geschrieben am: 05.08.2014 12:10:22

…Thomas,
und du es tatsächlich schaffst den ganzen HTML-QuellCode auszulesen, muss das Gesuchte auch zu finden sein. Allerdings solltest du dir zuvor ansehen, wie dein Browser diesen darstellt, denn uU ist das nicht so wie du es vermutest!
Gruß, Luc :-?

Besser informiert mit …


  

Betrifft: AW: Wenn ich deine Frage richtig interpretiere, ... von: Thomas
Geschrieben am: 05.08.2014 12:12:41

danke für den Antwort. ich dachte der ganze code würde mit den o.g. funktionen ausgelesen werden. Wenn ich mir den Sourcecode im IE ansehe finde ich den String "style="background-color:#00dd00". Wenn ich diesen jedoch mit dem o.g. functionen suche, wird der nicht gefunden :(


  

Betrifft: AW: Wenn ich deine Frage richtig interpretiere, ... von: Thomas
Geschrieben am: 05.08.2014 12:13:01

danke für den Antwort. ich dachte der ganze code würde mit den o.g. funktionen ausgelesen werden. Wenn ich mir den Sourcecode im IE ansehe finde ich den String "style="background-color:#00dd00". Wenn ich diesen jedoch mit dem o.g. functionen suche, wird der nicht gefunden :(


  

Betrifft: AW: Wenn ich deine Frage richtig interpretiere, ... von: Thomas
Geschrieben am: 05.08.2014 12:13:34

danke für den Antwort. ich dachte der ganze code würde mit den o.g. funktionen ausgelesen werden. Wenn ich mir den Sourcecode im IE ansehe finde ich den String "style="background-color:#00dd00". Wenn ich diesen jedoch mit dem o.g. functionen suche, wird der nicht gefunden :(


  

Betrifft: Die zielen ja auch nicht darauf speziell ab, ... von: Luc:-?
Geschrieben am: 05.08.2014 12:33:25

…Thomas,
sondern sollten viel mehr zurückgeben. Und wie das dann aussieht, müsstest du dir mal ansehen.
Du solltest dann auch .innerText des HTML-Tags wiedergeben, indem diese Cascading StyleSheet-Angabe notiert ist.
Luc :-?


  

Betrifft: AW: Die zielen ja auch nicht darauf speziell ab, ... von: Thomas
Geschrieben am: 05.08.2014 12:49:54

I habe es mit allen vier functionen probiert und keine gibt den inhalt des style zurück.


  

Betrifft: AW: Wenn ich deine Frage richtig interpretiere, ... von: Tino
Geschrieben am: 05.08.2014 12:41:23

Hallo,
wie genau suchst Du diesen Teilstring, gerade wegen diesen Anführungszeichen?

Sub Beispiel()
Dim HTMLCode$

HTMLCode = "bla bla bla Style = ""background-color:#00dd00"" bla bla bla"

If InStr(HTMLCode, "Style = ""background-color:#00dd00""") > 0 Then
    MsgBox "gefunden"
Else
    MsgBox "nicht gefunden"
End If

End Sub

Gruß Tino


  

Betrifft: vielleicht hilft diese Variante... von: Tino
Geschrieben am: 05.08.2014 13:28:52

Hallo,
kenn mich selbst mit HTML nicht so gut aus kannst aber diese Variante versuchen.
Der Text-Variablen DeinHTMLCode musst Du Deinen HTML-Code zuweisen.

In etwa so:

DeinHTMLCode = WebBrowser1.Document.body.innerHTML
Sub BeispielCode()
Dim Regex As Object, objMatch As Object
Dim DeinHTMLCode$

'Beispiel HTML zum Testen 
DeinHTMLCode = "bla bla bla Style = ""background-color:#00dd00"" bla bla bla" & _
               "bla bla bla Style = ""background-color:#3ADC6B"" bla bla bla"

Debug.Print DeinHTMLCode

Set Regex = CreateObject("Vbscript.Regexp")

With Regex
  .MultiLine = True
  .Pattern = "Style = ""background-color:#[0-9,a-z]{6}"""
  .Global = True
  .IgnoreCase = True


  For Each objMatch In .Execute(DeinHTMLCode)
     Debug.Print objMatch
  Next objMatch
End With

End Sub
Gruß Tino


  

Betrifft: Da das nicht wirklich HTML ist, sondern ... von: Luc:-?
Geschrieben am: 05.08.2014 13:42:35

…gewöhnlicher Text, wird's wohl auch gefunden, Tino!
An HTML-Kenntnissen und der Verwendung der entsprd Tags führt wohl kein Weg vorbei, Thomas!
Mit VBScript und J[ava]Script klappt das jedenfalls.
Luc :-?


  

Betrifft: AW: Da das nicht wirklich HTML ist, sondern ... von: Thomas
Geschrieben am: 05.08.2014 13:54:14

danke, hilft nur leider alles nicht. .innerhtml und .outerhtml hab ich schon einmal komplett ausgeben lassen. der ausgegebene "quelltext" enthält jedoch nie die "style" und "title" definitionen. somit kann ich darin auch suchen bis ich schwarz werde. genau das ist ja das problem (also nicht das schwarzwerden)


  

Betrifft: Tja, dann befinden die sich womöglich ganz ... von: Luc:-?
Geschrieben am: 05.08.2014 16:49:38

…woanders, Thomas,
denn man kann wohl für so etwas auch (ein) Muster anlegen, auf die(/das) die einzelnen Sheets einer HTML-CSS-Site zugreifen. Alternativ könnten die HTML-Tags ganz am Anfang und ganz am Ende aller Blätter der Site stehen. Das müsste man aber am QuellText erkennen können.
Bei Tabellen mit Einzelfärbung der Zellen wäre es ansonsten nicht allzu kompliziert, eine Farbe auszulesen. Das kannst du ja mal an diesem ArchivBsp testen. Allerdings hat die Tabelle auch keine eigenen HTML-Tags mehr, weil die Forumssoftware die bei der Einbettung entfernt. Du erhätst mit .innerHTML also mehr als nur die Tabelle.
Luc :-?


  

Betrifft: er findet diesen Teil im Texteditor von: Tino
Geschrieben am: 05.08.2014 14:00:02

Hallo,
ich denke wenn er diesen Teil auch im Texteditor findet,
müsste der VBA-Code auch diesen Text finden.
Ob dies aber jetzt im Body-Bereich oder sich im Head-Bereich befindet oder nur ein Kommentar ist,
kann diese Code nicht unterscheiden.

Evtl. kann er ja einen Teil in einem Textfile (evtl. als Zip) hochladen,
dann könnet man mal mehr versuchen.

Gruß Tino


  

Betrifft: AW: er findet diesen Teil im Texteditor von: Thomas
Geschrieben am: 06.08.2014 16:39:45

hi ihr lieben,
ihr findet den einscheidenen teil auch hier:

http://stackoverflow.com/questions/25126308/how-to-import-background-color-from-html-to-excel-with-vba-macro/


da hab ich auch schon gefragt :)


  

Betrifft: AW: er findet diesen Teil im Texteditor von: Tino
Geschrieben am: 06.08.2014 19:09:23

Hallo,

Sub BeispielCode()
Dim Regex As Object, objMatch As Object
Dim DeinHTMLCode$

'Beispiel HTML zum Testen 
DeinHTMLCode = "<tr class=""odd""><td><a href=""xxxxxxx"">" & vbCr
DeinHTMLCode = DeinHTMLCode & "<img border=""0"" src=""letter.png"" title=""Titel0"" /></a><td></td>" & vbCr
DeinHTMLCode = DeinHTMLCode & "<td><img title=""VServer Usage"" style=""background-color:#00dd00"" border=""0"" src=""/ce.png"" /> <a   " & vbCr
DeinHTMLCode = DeinHTMLCode & "<td><img title=""VServer Usage"" style = ""background-color:#00dd00"" border=""0"" src=""/ce.png"" /> <a   " & vbCr
DeinHTMLCode = DeinHTMLCode & "href=""testtesttest"">blablabla</a></td>" & vbCr
DeinHTMLCode = DeinHTMLCode & "<td><a href=""http://maps.google.de/"" target=""_blank"">TEST TEST</a></td>" & vbCr
DeinHTMLCode = DeinHTMLCode & "<td><img border=""0"" src=""/damage.png"" title=""Titel1""/></a></td>" & vbCr
DeinHTMLCode = DeinHTMLCode & "<td></td><td><img border=""0"" src=""/card.png"" title=""Titel2""/></a></td>" & vbCr
DeinHTMLCode = DeinHTMLCode & "<td></td><td><img border=""0"" src=""/key.png"" title=""Titel3"" /></a></td>" & vbCr
DeinHTMLCode = DeinHTMLCode & "<td><img border=""0"" src=""/immo.png"" title=""Titel4"" /></a></td>" & vbCr
DeinHTMLCode = DeinHTMLCode & "<td><img border=""0"" src=""/locked.png"" title=""Titel5"" /></a></td><td>101</td>" & vbCr
DeinHTMLCode = DeinHTMLCode & "<td>102</td><td>103</td><td>104</td><td>105</td><td>106</td><td>107</td><td>Name</td>" & vbCr
DeinHTMLCode = DeinHTMLCode & "</tr>" & vbCr & vbCr
DeinHTMLCode = DeinHTMLCode & "// and then it starts with the next line which has the same structure"

'Debug.Print DeinHTMLCode 

Set Regex = CreateObject("Vbscript.Regexp")

With Regex
  .MultiLine = True
  .Pattern = "Style *= *""background-color:#[0-9,a-z]{6}"""
  .Global = True
  .IgnoreCase = True


  For Each objMatch In .Execute(DeinHTMLCode)
     Debug.Print objMatch
  Next objMatch
End With

End Sub


Diese zwei werden bei mir gefunden!
Aus Zeile 3 und 4






Gruß Tino


  

Betrifft: AW: er findet diesen Teil im Texteditor von: Thomas
Geschrieben am: 08.08.2014 07:50:36

Dankeschön für deine Mühe. Deine Version funktioniert bei mir auch. Allerdings kopierst du ja auch manuell den Sourcecode in eine Variable. Das soll ja bei mir automatisch mit

WebBrowser1.Document.body.innerHTML oder
WebBrowser1.Document.body.outerHTML oder
WebBrowser1.Document.body.innerText oder
WebBrowser1.Document.body.outerText

geschehen. Egal welche Funktion ich nutze, dabei klappt dein Code leider nicht. Hast du dazu vielleicht noch eine Idee?


  

Betrifft: dazu müsste ich deine Seite kennen! oT. von: Tino
Geschrieben am: 08.08.2014 08:13:24




  

Betrifft: Viell solltest du mal auf meine AW eingehen! owT von: Luc:-?
Geschrieben am: 08.08.2014 09:20:28

:-?


 

Beiträge aus den Excel-Beispielen zum Thema "mittels VBA background color aus IE auslesen"