12.5k Aufrufe
Gefragt in Tabellenkalkulation von kurtl Mitglied (239 Punkte)
Hallo liebe Experten,
ich möchte gern in einer Exel Tabelle (Tabellenblatt1) ein oder mehrere aninimierte gif`s wackeln lassen.
Ich bin nach Anleitung im Netz wie folgt vorgegeangen:
1.Exel Tabelle geöffnet
2.Ansicht-Symbolleisten-Steuerelemente Toolbox-weitere Steuerelemente-Microsoft Webbrowser- dann Stelle in exel Tabelle markiert, wo das gif zappeln soll (geht ein schwarzes Fenster mit windows symbol auf)
3. VBA Fenster geöffnet, Workbook ausgewählt und folgenden code in diese Arbeitsmappe:

Option Explicit
Private Sub Workbook_Open()
Tabelle1.WebBrowser1.Navigate_ "H:\gif\telefon00015"

End Sub
(Das gif liegt auf meinem Rechner auf Laufwerk H im Ordner gif und
heißt telefon00015)
4.Exelt Tabelle Entwurfsmodus beendet und exel Tabelle geschlossen.
Beim erneuten öffner der Tabelle sollte das Telefon wackeln, aber es kommt nur eine VBA Laufzeitfehlermeldung (438).
Kann jemand weiterhelfen?
Danke im vorraus!
Gruß Kurt

30 Antworten

0 Punkte
Beantwortet von kurtl Mitglied (239 Punkte)
Hallo Karin,
ich verwende exel 2002.
Die Exel Tabelle und das gif Bild habe ich in einen von mir angelegten Ordner gelegt und starte auch daraus. Ich weiß nicht ob Du das gemeint hast.

Gruß Kurt
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Kurt,

das bezog sich nur auf die Excel-Versionen 2007 bzw. 2010.

Kann es sein, dass dein Steuerelement nicht WebBrowser1 heißt? Das müsstes du natürlich anpassen.

Bis später,
Karin
0 Punkte
Beantwortet von kurtl Mitglied (239 Punkte)
Hallo Karin,
zumindest im Makro heißt das Steuerelement bei mir WebBrowser1.
Ich zeig Dir jetzt noch einmal meinen beiden Code.
Also:
Diese Arbeitsmappe:
Option Explicit
'**************************************************
'* 22.12.06, 30.04.07 *
'* erstellt von Karin (Beverly), http://Excel-Inn.de*
'* Beverly_Forums@web.de *
'**************************************************

Private Sub Workbook_Open()
With Tabelle1.WebBrowser1
.Visible = True
.Navigate ThisWorkbook.Path & "\ww.gif"
.Document.bgcolor = RGB(0, 0, 250)
'Webbrowser einblenden. Tabelle1 ist der inter Name lt. Excel, nicht der Name lt. Register
Tabelle1.WebBrowser1.Visible = True
' Zuweisung des animierten GIF's an das Windows-Webbrowser-Element
Tabelle1.WebBrowser1.Navigate ThisWorkbook.Path & "\telefon.gif"
' Farbliche Gestaltung Browserfenster

End With

End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
' Webbrowser ausblenden. Tabelle1 ist der inter Name lt. Excel, nicht der Name lt. Register
Tabelle1.WebBrowser1.Visible = False
End Sub
...und Tabelle1
Option Explicit
'**************************************************
'* 22.12.06, 30.04.07 *
'* erstellt von Karin (Beverly), http://Excel-Inn.de*
'* Beverly_Forums@web.de *
'**************************************************

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
' Code von Kl@us-Martin für Eigenschaften des Webbrowsers festlegen
With WebBrowser1.Document.body
' keine Bildlaufleisten
.setAttribute "scroll", "no"
' Abstand des Gif vom linken Rand
.setAttribute "leftMargin", "0"
' Abstand des Gif vom oberen Rand
.setAttribute "topMargin", "0"
' ergänzt durch Beverly: keinen Rahmen anzeigen
.Style.Border = "none"

End With
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
' damit der Cursor nach dem Doppelklick nicht in der Zelle steht
Cancel = True
' Webbrowser ein- bzw. ausblenden
WebBrowser1.Visible = Not WebBrowser1.Visible
End Sub

In dem Code in Tabelle1 wird jetzt die Zeile
With WebBrowser1.Document.body moniert und gelb unterlegt.

Gruß Kurt
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Kurt,

in meiner Originaldatei heißt das Steuerelement WebBrowser1, deshalb wird es im Code auch mit WebBrowser1 angesprochen. Heißt es in deiner Arbeitsmappe nicht WebBrowser1, darfst du es im Code auch nicht mit WebBrowser1 ansprechen - das löst sonst logischerweise einen Fehler aus, da es nicht vorhanden ist. Markiere das WebBrowser-Steuerelement und schaue im Namen-Fenster (oben links neben der Bearbeitungsleiste) nach, wie dein Steuerelement heißt - passe den Namen im Code dann entsprechend an.

Bis später,
Karin
0 Punkte
Beantwortet von kurtl Mitglied (239 Punkte)
Hallo Karin,
erst einmal sorry, natürlich ist es Dein Code(wie machst Du es eigentlich in dieser Maske Wörter fett zu markieren?), den ich da in meiner exel Tabelle stehen habe.
Es ist aber wie es ist. Auch bei mir heißt das Steuerelement
WebBrowser1 und in der Bearbeitungsleiste steht
=Einbeten("Shell.Explorer.2";)
Hast Du mal geschaut ob ich den Codeteil von Dir
With Tabelle1.WebBrowser1
.Visible = True
.Navigate ThisWorkbook.Path & "\ww.gif"
.Document.bgcolor = RGB(0, 0, 250)
richtig eingefügt habe, ob das alles passt?
Wenn ja, dann weiß ich auch nicht, warum es bei mir nicht funktioniert denke ich werden wir die Sache dann beenden. Ich möchte Deine Zeit nicht über Gebühr strapazieren.
Bitte noch eine abschließende Rückmeldung von Dir und dann werde ich Deine Antwort als positiv bewerten denn ohne Dich, hatte ich so ein gif nie zum zappeln bekommen.
Gruß Kurt
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Kurt,

ich wollte durch die Hervorhebungen nur darauf hinweisen, dass es möglicherweise Unterschiede zwischen dem Namen des Steuerelements in meiner Datei und in deiner Datei geben könnte, was den Fehler auslöst - nicht mehr und nicht weniger.
Einen Text im Beitrag kannst du bei gedrückter Maustaste markieren und dann einen der Schalter (B für Fettschrift, i für Kursiv und u für untershtrichen) oberhalb des Antwortfensters benutzen - dann wird er entsprechend formatiert dargestellt.

Deinen Code kannst du ebenfalls formatiert anzeigen (falls er mit Einrückungen formatiert ist), wenn du ihn zuerst in den Beitrag kopierst, markierst und dann den Schalter "Code" drückst - dann ist der Code wesentlich besser lesbar.

Bei mir sieht das Ganze folgendermaßen aus:

Code unter DieseArbeitsmappe
Private Sub Workbook_Open()
With Tabelle1.WebBrowser1
.Visible = True
.Navigate ThisWorkbook.Path & "\ww.gif"
.Document.bgcolor = RGB(0, 0, 250)
End With
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
' Webbrowser ausblenden. Tabelle1 ist der interne Name lt. Excel, nicht der Name lt. Register
Tabelle1.WebBrowser1.Visible = False
End Sub


Code im Tabellenblatt mit dem Steuerelement
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
' Code von Kl@us-Martin für Eigenschaften des Webbrowsers festlegen
With WebBrowser1.Document.body
' keine Bildlaufleisten
.setAttribute "scroll", "no"
' Abstand des Gif vom linken Rand
.setAttribute "leftMargin", "0"
' Abstand des Gif vom oberen Rand
.setAttribute "topMargin", "0"
' ergänzt durch Beverly: keinen Rahmen anzeigen
.Style.Border = "none"
End With
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
' damit der Cursor nach dem Doppelklick nicht in der Zelle steht
Cancel = True
' Webbrowser ein- bzw. ausblenden
WebBrowser1.Visible = Not WebBrowser1.Visible
End Sub


Könnte es sein, dass es nicht Tabelle1 ist, in der sich das Steuerelement befindet? Ich habe den Codenamen des Tabellenblattes verwendet und nicht das, was auf dem Tabellenreiter steht. Diesen Namen kannst du aber auch verwenden, da müsstest du nur an allen Stellen Tabelle1 durch Worksheets("DeinTabellenname") ersetzen.

Falls es auch danach immer noch nicht funktioniert, bleibt noch die Möglichkeit, dass du deine Mappe mal hochlädst, damit ich mir das anschauen kann. Ich gebe normalerweise nicht auf, zu versuchen ein Problem zu lösen, so lange noch Optionen offen sind.

Ich habe den geposteten Code übrigens sicherheitshalber auch mal mit Excel2002 getestet - funktioniert ohne Fehler.

Bis später,
Karin
0 Punkte
Beantwortet von kurtl Mitglied (239 Punkte)
Hallo Karin,
du hast es hier wirklich mit einem Volltrottel zu tun. ( Aber zumindest lernfähig und auch willig) mit der Schriftformatierung, da hätte ich auch selber darauf kommen können.
Aber jetzt kommt schon das nächste. Du müsstest mich anleiten, wie ich einen Ordner für hochladen kann. (eben doch Volltrottel)
Es bleibt warscheinlich kein anderer Weg.
Hab alles so gemacht, wie Du geschrieben ( denke ich jedenfalls ) und das Ergebnis ist immer das selbe - leider.

Gruß Kurt
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Kurt,

falls du keinen eigenen Webspace hast, wo du etwas hochladen kannst, gibt es kostenlose Upload-Agents - z.B. www.file-upload.net/ oder www.uploadagent.de/ .

Bis später,
Karin
0 Punkte
Beantwortet von kurtl Mitglied (239 Punkte)
Hallo Karin,
hab jetzt über den ersten link www.file-upload.net die exel Tabelle Namens Farbtest gif
und das gif Namens Telefon einzeln (als Ordner ging nicht) hochgeladen.
Hab keine Ahnung, wie Du da jetzt ran kommst - ist mir alles zu hoch- war bestimmt auch wieder was falsch. Na ja, mal sehen was Du sagst.

Gruß Kurt
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Kurt,

wenn du dort etwas hochlädst, dann erhältst du eine Linkadresse - diese musst du hier in den Beitrag kopieren, erst dann kann man es von dort auch wieder herunter laden.

Bis später,
Karin
...