Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1372to1376
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
mittels VBA background color aus IE auslesen
05.08.2014 11:38:20
Thomas
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?

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Wenn ich deine Frage richtig interpretiere, ...
05.08.2014 12:10:22
Luc:-?
…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 …

AW: Wenn ich deine Frage richtig interpretiere, ...
05.08.2014 12:12:41
Thomas
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 :(

Anzeige
AW: Wenn ich deine Frage richtig interpretiere, ...
05.08.2014 12:13:01
Thomas
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 :(

AW: Wenn ich deine Frage richtig interpretiere, ...
05.08.2014 12:13:34
Thomas
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 :(

Die zielen ja auch nicht darauf speziell ab, ...
05.08.2014 12:33:25
Luc:-?
…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 :-?

Anzeige
AW: Die zielen ja auch nicht darauf speziell ab, ...
05.08.2014 12:49:54
Thomas
I habe es mit allen vier functionen probiert und keine gibt den inhalt des style zurück.

AW: Wenn ich deine Frage richtig interpretiere, ...
05.08.2014 12:41:23
Tino
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

Anzeige
vielleicht hilft diese Variante...
05.08.2014 13:28:52
Tino
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

Anzeige
Da das nicht wirklich HTML ist, sondern ...
05.08.2014 13:42:35
Luc:-?
…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 :-?

AW: Da das nicht wirklich HTML ist, sondern ...
05.08.2014 13:54:14
Thomas
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)

Tja, dann befinden die sich womöglich ganz ...
05.08.2014 16:49:38
Luc:-?
…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 :-?

Anzeige
er findet diesen Teil im Texteditor
05.08.2014 14:00:02
Tino
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

AW: er findet diesen Teil im Texteditor
06.08.2014 19:09:23
Tino
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

Userbild
Gruß Tino

Anzeige
AW: er findet diesen Teil im Texteditor
08.08.2014 07:50:36
Thomas
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?

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

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

143 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige