Registriert seit: 22.09.2024
Version(en): 2010
04.11.2024, 17:05
(Dieser Beitrag wurde zuletzt bearbeitet: 04.11.2024, 17:06 von knobbi38.)
Hallo Stefan, Zitat:Dateien kann ich nicht hochladen. Ich kann dein Problem mit Excel 2010 nicht nachvollziehen, also ohne ein bißchen Mitarbeit von dir kann ich nicht weiter helfen. Übrigens: Das Webbrowser-Control ist ein eigenständiges ActiveX-Control und hat nichts speziell mit Word zu tun.
Registriert seit: 26.09.2015
Version(en): 2013
Hallo hier noch ein Nachtrag. Könnte das mit der IE oder sowas zu tun haben? Müsste vielleicht im JavaScript oder dem html-Code etwas angepasst oder modernisiert werden, damit es auch im WebBrowser von Excel läuft. Vielleicht sowas wie Und halten auf den Chrome oder so? Irgendwie scheint es mir so, dass es zwar auch im Excel (blauer Hintergrund) dargestellt werden kann, jedoch der Ticker einfach nicht loslaufen will, was er im Word hingegen kann.
Registriert seit: 22.09.2024
Version(en): 2010
Da das Webbrowser-Control identisch ist, könnte es an verschiedenen Sicherheitseinstellungen liegen, da dieser Kontext von der Host-Anwendung bereitgestellt wird. Bleibt dir also nur übrig, Ausgaben auf deiner "Webseite" für Debuggingzwecke zu machen, z.B. in welchem Kompatibilitätsmodus der IE läuft, wie der Inhalt von "tickerSupported" ist usw. Auch könntest du mal die Optionen in Excel für ActiveX-Komponenten überprüfen.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
05.11.2024, 18:55
(Dieser Beitrag wurde zuletzt bearbeitet: 05.11.2024, 18:57 von schauan.)
Hallöchen, also, in Word läuft Dein js und in Excel nicht. Könnte also, wie knobbi schon schrieb, an den Sicherheitseinstellungen von Excel liegen. Da gibt es ein paar andere Einstellungen und eine Seite mehr als in Word - "Extener Inhalt", wobei es auch "interne" Mechanismen sein können die das verhindern. Auf Grund der höheren Verbreitung von Makros in Excel könnte MS da ja etwas restriktiver vorgehen. Die Sicherheitsmeldung ist in Excel die gleiche wie in Word. Tut man die akzeptieren, wird das js jedoch nur in Word ausgeführt. Im Anhang hab ich das mal in eine xlsm und docm eingearbeitet, die html und js dazu getan ... Kann man in irgendein Verzeichnis auspacken und ausführen.
Webticker_lib.zip (Größe: 50,93 KB / Downloads: 2)
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• Stefan1
Registriert seit: 26.09.2015
Version(en): 2013
05.11.2024, 23:56
(Dieser Beitrag wurde zuletzt bearbeitet: 05.11.2024, 23:56 von Stefan1.)
Guten Tag schauan Vielen Dank für die Ausführungen und das Bereitstellen der Dateien des WebTickers. OK, verstehe jetzt viel besser; es liegt an der Sicherheitseinstellungen, welche zudem noch unterschiedlich bei Excel und Word sind. Excel mag wohl kein JavaSkript aufgrund von Sicherheitsdenken, wie ihr ausgeführt habt. Da bleibt wohl höchstens die Möglichkeit ein WebTicker ohne JS oder via Internetbrowser oder Einstellungen oder Verzicht. Wenigstens kann ich es jetzt nachvollziehen. Nochmals vielen Dank. Gruss Stefan1
Registriert seit: 26.09.2015
Version(en): 2013
Guten Tag schauan Aufgrund Deines Hinweises habe ich das "marquee"-Laufband gefunden. Mit diesem läuft das Laufband ohne Probleme auf Word und Excel. Nun habe ich aber Probleme mit der Darstellung. So ist die Schriftgrösse einfach zu gross und ich möchte den ganzen Hintergrund blau (#99CCFF) ohne weissen Rand haben. Auch ist der Abstand zum WebBrowser-Rand einfach zu gross er müsste viel kleiner sein. Den bisherigen Code mit JavaScript (welcher im Excel nicht zum Laufen gebracht werden kann) habe ich auskommantiert belassen. Soll ich noch etwas beachten zur Optimierung?. Vielen Dank für Unterstützung. Gruss Stefan1 Code: Sub HtmlTicker_schreiben() Dim strTxt As String Dim strPfad1 As String Dim strSek As String Dim strDat As String Dim objFSO As Object strPfad1 = "S:\xxxx" strSek = ThisWorkbook.Worksheets("Ticker").Range("B6").Value strDat = "WebTicker.html" Set objFSO = CreateObject("Scripting.FileSystemObject") If objFSO.FileExists(strPfad1 & strDat) = True Then Kill strPfad1 & strDat Set objFSO = Nothing Open strPfad1 & strDat For Output As #1 ' Print #1, "<html>" ' Print #1, "<meta http-equiv=" & Chr(34) & "Content-Type" & Chr(34) & " " & _ ' "content=" & Chr(34) & "text/html; charset=UTF-8" & Chr(34) & "/>" ' Print #1, "<meta http-equiv=" & Chr(34) & "refresh" & Chr(34) & " " & _ ' "content=" & Chr(34) & strSek & ";" & Chr(34) & ">" ' Print #1, "<body>" ' If ThisWorkbook.Worksheets("Ticker").Range("B5").Value <> "" Then ' strTxt = txt2html(CStr(Format$(Now, "dd.mm.yyyy hh:mm") & " - " & ThisWorkbook.Worksheets("Ticker").Range("B5").Value)) ' 'strTxt = CStr(Format$(Now, "dd.mm.yyyy hh:mm") & " - " & ThisWorkbook.Worksheets("Ticker").Range("B5").Value) ' Print #1, "<DIV ID=""TICKER"" STYLE=""margin-top:-0.5em; overflow:hidden; width:100%; onmouseover=""TICKER_PAUSED=true"" onmouseout=""TICKER_PAUSED=false"">" ' Print #1, strTxt ' Print #1, "</DIV>" ' Print #1, "<script type=""text/javascript"" src=""webticker_lib.js"" language=""javascript""></script>" ' End If ' 'Print #1, "<body bgcolor=#99CCFF>" ' Print #1, "<body bgcolor=#8DB4E2>" ' Print #1, "</body>" ' Print #1, "</html>" If ThisWorkbook.Worksheets("Ticker").Range("B5").Value <> "" Then _ strTxt = txt2html(CStr(Format$(Now, "dd.mm.yyyy hh:mm") & " - " & ThisWorkbook.Worksheets("Ticker").Range("B5").Value)) Print #1, "<html>" Print #1, " <head>" Print #1, " <title>Laufschrift mit HTML</title>" Print #1, " </head>" Print #1, " <body>" Print #1, " <center>" Print #1, " <marquee direction=""left"" top=""0"" heigth=""20"" scrollamount=""1"" scrolldelay=""100"" bgcolor=""#99CCFF"">" Print #1, " <font size=""9pt"" color=""white"" face=""Arial"" font-weight=""Bold"">""" & strTxt & "</font>" Print #1, " </marquee>" Print #1, " </center>" Print #1, " </body bgcolor=""#99CCFF"">" Print #1, "</html>" Close #1 End Sub
Public Function txt2html(sText As String) As String
' Text-Datei zeilenweise einlesen ' und Sonderzeichen, wie Umlaute und spitze ' Klammern durch HTML-Steuercodes ersetzen
sText = Replace(sText, "ä", Chr$(&HC3) & Chr$(&HA4)) sText = Replace(sText, "ö", Chr$(&HC3) & Chr$(&HB6)) sText = Replace(sText, "ü", Chr$(&HC3) & Chr$(&HBC)) sText = Replace(sText, "Ä", Chr$(&HC3) & Chr$(&H84)) sText = Replace(sText, "Ö", Chr$(&HC3) & Chr$(&H96)) sText = Replace(sText, "Ü", Chr$(&HC3) & Chr$(&H9C)) sText = Replace(sText, "ß", Chr$(&HC3) & Chr$(&H9F))
txt2html = sText
End Function
x
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
... schaue Dir hier mal die marquee-Zeile an: PHP-Code: <html> <head> <title>Laufschrift mit HTML</title> </head> <body> <center> <marquee height="40" width="100%" bgcolor="#99CCFF" behavior="scroll" direction="left" scrollamount="5" style="font-size: 20px;">Jupp !</marquee> </center> </body bgcolor="#99CCFF"> </html>
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• Stefan1
Registriert seit: 26.09.2015
Version(en): 2013
06.11.2024, 17:11
(Dieser Beitrag wurde zuletzt bearbeitet: 06.11.2024, 17:13 von Stefan1.)
Guten Abend Schauan Vielen Dank für Deine grosse Unterstützung. Ich habe Deinen HTML-Code noch etwas modifiziert und bin damit recht zufrieden. Leider sollte die Schrift etwas höher am oberen Rand (Fensterrand vom WebBrowser-Steuerelement) sein bzw. "kleben", so wie beim ursprünglichen Html/JS, ansonsten es nicht ganz in das Laufband (Höhe des schmalen WebBrowser-Steuerelementes) passt. Gibt für "Bold" im HTML eine bessere Schreibweise als nachfolgend: Hier das Resultat als Html und darunter die Erstellung via VBA/Excel (nun kann ich dort auch eine WebBrowser-Vorschau haben ): Code: 'HTML '------------------- <!DOCTYPE html> <html> <head> <title>Laufschrift mit HTML</title> </head> <body> <center> <marquee hspace="0px" vspace="0px" heigth="40" width="100%" bgcolor="#99CCFF" behavior="none" direction="left" scrollamount="2" scrolldelay="100"> <font size="3" color="white" face="Arial"><b>06.11.2024 15:52 - ** Willkommen **</b></font> </marquee> </center> <body bgcolor=#99CCFF> </body> </html> '---------------------------------------------------- 'VBA (Auszugsweise) '------------------ Print #1, "<!DOCTYPE html>" & vbCrLf & _ "<html>" & vbCrLf & _ " <head>" & vbCrLf & _ " <title>Laufschrift mit HTML</title>" & vbCrLf & _ " </head>" & vbCrLf & _ " <body>" & vbCrLf & _ " <center>" & vbCrLf & _ " <marquee hspace=""0px"" vspace=""0px"" heigth=""40"" width=""100%"" bgcolor=""#99CCFF"" behavior=""none"" direction=""left"" scrollamount=""2"" scrolldelay=""100"">" & vbCrLf & _ " <font size=""3"" color=""white"" face=""Arial""><b>" & strTxt & "</b></font>" & vbCrLf & _ " </marquee>" & vbCrLf & _ " </center>" & vbCrLf & _ " <body bgcolor=#99CCFF>" & vbCrLf & _ " </body>" & vbCrLf & _ "</html>" Close #1
Registriert seit: 26.09.2015
Version(en): 2013
Guten Tag Der Abstand zum oberen Fensterrand des WebBrowser habe ich nun mit topmargin="4px" hingekriegt. Doch das Unterdrücken der Srollbar mit style="overflow:hidden" habe ich nicht hingekriegt. Oder muss mit VBA beim WebBrowser-Steuerelement geregelt werden? Mit .Document.body.Scroll = "no" habe ich es versucht, jedoch ohne Erfolg. Code: <!DOCTYPE html> <html> <head> <title>Laufschrift mit HTML</title> </head> <body> <center> <marquee width="100%" bgcolor="#99CCFF" direction="left" scrollamount="2" scrolldelay="100"> <font size="3" color="white" face="Arial"><b>06.11.2024 22:09 - ** Guten Tag. XXX **</b></font> </marquee> </center> <body style="overflow:hidden" bgcolor=#99CCFF topmargin="4px"> </body> </html> '----------------------------------$ 'VBA
Private Sub WebBrowserInfo_DocumentComplete(ByVal pDisp As Object, URL As Variant) Dim sHTML As String On Error Resume Next With WebBrowserInfo '.Document.Body.setAttribute "scroll", "no" .Document.body.Scroll = "no" '.Document.Body.Style.Border = "none" End With On Error GoTo 0 End Sub
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
in Deinem geposteten code sehe ich kein topmargin="4px".
overflow ist eher was für css... bzw. .document.getElementById("pDisp").style.overflow = "hidden"; wobei ich mir jetzt nicht sicher bin, was Du da übergibst bzw. ob das mit dem pDisp funktioniert.
Den kompletten Text bei einer Laufschrift sieht man eigentlich nur beim hin und her, also mit behavior=alternate. Oder der Text ist so lang, dass das, was da auf der einen Seite verschwindet, auf er anderen gleich wieder auftaucht. Oder Du schreibst einen kurzen Text mehrfach, sodass immer irgendwo was komplett zu sehen ist.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
|