Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

mp3 beim öffnen einer tabelle??!!??





Frage

hey leutz, ich möchte gern beim öffnen einer exeltabelle eine mp3 abspielen lassen. eigentlich müsste das mit einer funktion doch funktionieren, oder? wer kann mir mal dabei helfen ich find es irgendwie nicht. danke

Antwort 1 von coros

Hallo ,

kopiere nachfolgenden Code in das VBA Projekt "DieseArbeitsmappe".

Private Sub Workbook_Open()
Dim MediaPlayer1 As Variant
MediaPlayer = Shell("C:\Programme\Windows Media Player\wmplayer.exe c:\Track15.wma")
End Sub


Dieser Code startet den MediaPlayer und spielt das Lied "Track15.wma" ab. Du müsstest anstelle des "Tracks15.wma", Deinen MP3 Titel dort eintragen.

Ich hoffe, Du kommst kalr. Wenn nicht, melde Dich.

Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 1 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von Flupo

Füge an einer unauffälligen Stelle ein Objekt ein.
Als Objekttyp "Medien-Clip" wählen.
Dann auf dem neuen Objekt rechtsklicken und im Menü "Mediendatei-Objekt - Bearbeiten..." auswählen.
Über das Menü oben die gewünschte MP3-Datei suchen und auswählen.
Mit einem Doppelklick auf dem Objekt prüfen, ob´s klappt.
Dann noch ein kleines Makro als Auto_öffnen() einfügen:

 Sub Auto_öffnen()
    ActiveSheet.Shapes("Object 1").Select
    Selection.Verb Verb:=xlPrimary
End Sub


Makro zum Testen ausführen.
Bingo!

Gruss Flupo

Eigentlich müsste es so gehen. Dummerweise wird das Makro bei mir (Excel97) nicht automatisch ausgeführt. :-(

Antwort 3 von Flupo

Kleine Anmerkung zur Lösung von Coros:
Natürlich kann anstelle des Media Players auch jeder andere (kommandozeilenfähige) Medienplayer wie z.B. Winamp o.ä. genutzt werden.

Es lohnt auch noch, die Befehlszeile etwas zu ergänzen:
 Private Sub Workbook_Open() 
Dim MediaPlayer1 As Variant 
MediaPlayer = Shell("C:\Programme\Windows Media Player\wmplayer.exe c:\Track15.wma",   vbMinimizedNoFocus) 
End Sub 


Dadurch wird der Mediaplayer als Symbol im Hintergrund ausgeführt. Es popt also kein Fenster auf.

Gruss Flupo

Antwort 4 von thetis

ich probiers erstmal aus ... vielen dank für die mühe schonmal... mal sehen obs klappt....

Antwort 5 von thetis

hey

coros... deine idee geht irgendwie nicht...
und flupo deine idee ist dem schon näher gekommen nur muss ichs "manuell" starten und ich hab xp das is irgendwie doof
oben in der exelleiste steht was von einbetten??? ist das wichtig?

Antwort 6 von coros

Hi thetis,

was geht denn nicht? Liegt denn Dein Media Player auch unter dem in dem Code angegebenen Pfad? Stimmt der Pfad für den MP3 Titel, den Du in dem Code angegeben hast? Kommt eine Fehlermeldung?

Also ich habe den Code bei Excel2000 und ExcelXp getestet und er funktionierte in beiden Versionen.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 7 von thetis

coros;
ich hab einfach statt track15.wma den pfad von der mp3 kopiert und eingefügt der rest is soweit ichs gesehen habe halles richtigaber er öffnet es nicht... ich seh da langsam nich mehr durch

Antwort 8 von thetis

er öffnet den media player gar nicht erst

Antwort 9 von martl

Hallo,

hm - stimmt der Pfad bzw. das Laufwerk ? Habs bei mir mal probiert - bis auf die Tatsache, dass das mit dem im Hintergrund ausführen ( vbMinimizedNoFocus ) nicht funktionieren möchte. Hab Excel2003 WinXP SP1 drauf.
Kann den Fehler noch jemand reproduzieren?

Hab den Code - da aus UserForm heraus - wie folgt geändert:

Private Sub COBOK_Click()
´UFMediaOpen.Hide
Dim MediaPlayer1 As Variant
MediaPlayer1 = Shell("C:\Programme\Windows Media Player\wmplayer.exe E:\Audiotracks\" & UFMediaOpen.CB1.Value & "\" & UFMediaOpen.CB2.Value & ".mp3", vbMinimizedNoFocus)
End Sub

Kann es sein dass es: "MediaPlayer1" anstatt "MediaPlayer" vor der Shellanweisung heissen muss ?

Viele Grüße und noch einen schönen Abend
martl

Antwort 10 von thetis

martl... ich hab die mp3 ja nich in einem laufwerk sondern in einem ordner...und den pfad hab ich ja normal kopiert. das prob. is ja wie gesagt das sich ja nichtmal der player öffner. ich hab jetzt einfach, wie flupo gesagt hat ne mediadatei eingefügt welche ich nur leider manuell öffnen muss... sie sollte aber von allein starten. was mit seinem makro aber anscheinend nicht geht

Antwort 11 von coros

Moin,

@martl, wie die Variable vor dem Shell befehl genannt wird ist wurscht. Dort könnte auch nur ein x oder y stehen. Das hat damit nichts zu tun.

@ thetis kannst Du mal die MP3 umbenennen in Track15 und diesen Titel einfach mal auf die Platte C legen und dann meinen obigen Code testen, ob er dann funktioniert. Ich vermute mal, dass es an der Namensgebung des Tietels liegt. Dass Du nicht mitbekommst, dass der Media Player sich öffnet ist richtig, da er im Hintergrund geöffnet wird auch ohne den Zusatz von Flupo. Jedenfalls bei mir auf Excel2000 und ExcelXp. Erst wenn der Code ein zweites mal ausgeführt wird, erscheint der Media Player. Also teste das mal bitte wie ich es geschrieben habe und gib bescheid. Wir werden das schon irgendwie hinbiegen.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 12 von thetis

moinsen....
wow du bist ja schon früh wach.... gähhhnnnn
ich habs ausprobiert und.... ES GEHT... ich glaub ich hab auch einen fehler gemacht. ich hab den code nicht in "diesearbeitsmappe" kopiert sondern in die "ersteuntermappe"... jedenfalls es geht wie geil.
kann ich die track15.wma jetzt auch in einen anderen ordner kopieren? probier ich gleich mal aus.....
jedenfalls danke... ich freu mich voll.

damit ihr wisst was ich hier gerade bastel: ich hab eine urlaubsexel angelegt. wir machen eine italienrundreise mit dem auto. und nun ist da sone art kalender mit uhrzeiten worin man sieht wann wir fahren, wann wir wo sind und wo wir übernachten. und zu jedem ort wo wir sind ist ein bild(bekannter platz) verlinkt. naja und nun sollte wenn man die datei öffnet die ital. nationalhymne laufen :) und jetzt geht alles so wie ich es gern hätte vielen dank

Antwort 13 von coros

Moin thetis,

na siehste, hab ich doch gesagt, das wir das irgendwie schon hinwurschteln werden. Freut mich jedenfalls dass nun alles funktioniert. Dann steht ja dem Italienurlaub nichts mehr im Wege. Viel Spaß bei Eurer Reise und schreibt mal einen Urlaubsgruß ans Supportnet. Danke Dir auch für die Rückmeldung.

MfG,
coros
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.

Antwort 14 von thetis

hey... ich schon wieder... :)
ich hab noch eine schaltfläche eingearbeitet... nach draufklicken soll sich eine *.gif öffnen und nun öffnet sich das dumme ding aber nicht... was hab ich falsch gemacht?

Antwort 15 von coros

Hi thetis,

wir haben hier bestimmt alle mächtig viele Eigenschaften, aber hellseherische noch nicht. Was für eine Schaltfläche, also von welcher Symbolleiste? Von der Symbolleiste Formular oder Steuerelement-Toolbox. Wenn Du das über ein Makro machen möchtest, wo ist das Makro?

Mit ein paar mehr Infos, was Du alles gemacht hast, kann man Dir sicherlich auch helfen.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 16 von thetis

lach... tut mir leid das ich dich schon wieder bemühe... also ich hab ne schaltfläche von steuerelement-toolbox erstellt und dann ein makro geschrieben....mal sehen vielleicht kann ich es kopieren... moment :)

so re
Private Sub CommandButton1_Click()
Click
Call Makro_starten
Click
Makro_starten
End Sub

aber irgendwie ... geht nich :( aber ich hab mich dran ausprobiert....
also um das du vielleicht weist worum es geht...
die schaltfläche ist in besagter datei und soll beim betätigen ein fenster öffnen und eine wedelne it-flagge zeigen... muss dann aber auch irgendwie wieder zu gehen.

also der button is da und die fahne auch nur auf gehts nich
gruss thetis

Antwort 17 von coros

Moin thetis,

so wie Du da angefangen hast, wird das nicht funktionieren. Für Deine Flagge musst Du ein das Microsoft-Webbrowser-Steuerelement verwenden oder ein spezielles Controlelement, das man aus einer separaten dll Datei erhält. Wobei die Sache mit dem Steuerelement leichter ist.

Also, wechsele mit der Tastenkombination Alt F11 in die VBA Umgebung. Klicke mit der rechten Maustaste auf der linken Seite in den VBA Explorer. In dem Menü wählst Du Einfügen und dann UserForm aus. Es wird Dir in dem rechten Fenster eine UserForm erstellt. Sollte Dir nicht gleichzeitig ein kleines Fenster mit dem Namen „Werkzeugsammlung“ mit eingeblendet werden, gehe in die Menüleiste und klicke dort auf Ansicht => Werkzeugsammlung. In diesem Fenster klickst Du in eine freie Fläche mit der rechten Maustaste und wählst dann „zusätzliche Steuerelement...“ aus. Es öffnet sich noch ein Fenster. In dem scrollst Du soweit nach unten, bis Du den Eintrag „Microsoft Webbrowser“ findest. Den markiere, so das ein Kreuz in dem Feld vor dem Eintrag erscheint und klicke auf den OK Button. In dem Fenster „Werkzeugsammlung“ sollte nun als letztes Steuerelement ein Button in Form einer Weltkugel hinzugefügt worden sein. Klicke diese neuen Button an und gehe danach in das UserFormfenster und ziehe ein Rechteck auf. Es entsteht ein Steuerelement, dass als Bild im Moment noch das Microsoftsymbol enthält. Klicke danach erneut in das Werkzeugsammlungsfenster und wähle dort den Button Befehlsschaltfläche (wie die Symbole heißen erfährst Du, wenn Du mal einen Moment auf einem Steuerelement verweilst, dann erscheint ein ToolTipText mit der Bezeichnung) aus. Klicke danach wieder in das UserFormfenster und es wird Dir eine Schaltfläche erstellt. Danach kopiere nachfolgenden Code in das VBA Projekt der UserForm (mit der rechten Maustaste auf die UserForm klicken und aus dem Menü „Code anzeigen“ auswählen).

Option Explicit

Private Sub CommandButton1_Click()
Unload Me
End Sub

Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
WebBrowser1.Document.body.Scroll = "no"
WebBrowser1.Document.body.Style.Border = "none"
End Sub

Private Sub UserForm_Initialize()
WebBrowser1.Navigate "C:\Dein Flaggennamen.gif"
End Sub


Anstelle des Textes „Dein Flaggennamen“ in der Zeile

WebBrowser1.Navigate "C:\Dein Flaggennamen.gif"

Muss dort der Gif-Dateiname stehen. Danach musst Du noch die UserForm mit einer Schaltfläche aufrufen. Wie Du die Schaltfläche erzeugst, wirst Du sicherlich wissen. Als Code muss dann in das VBA Projekt der Tabelle, in der sich der Button befindet folgender Code:

Private Sub CommandButton1_Click()
UserForm1.Show
End Sub


So, das war’s. Wenn DU alles richtig gemacht hast, dann sollte bei Klick auf den Button ein Fenster öffnen, in dem Deine Flagge weht.

Die zweite Möglichkeit mit einer speziellen dll-Datei, die dann ein Control bereitstellt, in dem man Gif’S anzeigen kann, verkneif ich mir hier zu erklären, da Dir die Lösung sicherlich reichen wird. Ich kann Dir aber bei Interesse mal eine kleine Beispieldatei erstellen, in der ich Dir sowohl die hier beschriebene als auch die zweite Lösung mal einarbeite und dazu einige Erklärungen abgeben kann. Allerdings wird das vor heute Abend nichts. Also bei Interesse schreibe Deine Mailadresse hier hin und ich schicke Dir die Beispieldatei.

Ich hoffe, Du kommst klar. Bei Fragen oder Problemen melde Dich.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 18 von thetis

wow.... vielen vielen dank...
ich hatte zwar erst noch schwierigkeiten... flagge kam nich und auf einmal gin das fenster nicht mehr zu...aber jetzt hab ichs im griff.
vielen dank für die hilfe
guss thetis

Antwort 19 von thetis

P.s. mail goerke_siebernik@web.de

sicherlich ist die ganze datei nur zum spass da, aber mit exel umgehen lernt man glaube ich nur so!!!!
danke

Antwort 20 von Nepumuk

Hi,

es gibt eine Möglichkeit per FilgraphManager eine MP3 ohne Player abzuspielen. Auch Pause / Weiter / Stop sind möglich. Wenn du Interesse hast, Dann melde dich noch mal.

Den Player sichtbar starten machst du am besten so:


Option Explicit

Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
    ByVal hwnd As Long, _
    ByVal lpOperation As String, _
    ByVal lpFile As String, _
    ByVal lpParameters As String, _
    ByVal lpDirectory As String, _
    ByVal lpnShowCmd As Long) As Long
        
Public Const SW_SHOWNORMAL = 1
Public Const SW_SHOWMINIMIZED = 2
Public Const SW_SHOWMAXIMIZED = 3
Public Const SW_SHOWNOACTIVATE = 4
Public Const SW_SHOWMINNOACTIVE = 7
Public Const SW_SHOWDEFAULT = 10

Public Sub test()
    ShellExecute FindWindow("XLMAIN", Application.Caption), "open", _
        "D:\Eigene Dateien\Eigene Präsentationen\Nils.mp3", vbNullString _
        , "C:\Programme\Windows Media Player\wmplayer.exe", SW_SHOWNORMAL
End Sub


Du könntest über das Playlistobjekt eine Liste von Titel erstellen, welche nacheinander abspielen.

Gruß
Nepumuk