Stoppuhr mit MP3-Ausgabe

Bild

Betrifft: Stoppuhr mit MP3-Ausgabe
von: Mike
Geschrieben am: 27.08.2015 20:43:39

Hallo,
in einer Excel 2013-Datei möchte ich eine Stoppuhr mit folgenden Fuktionen umsetzen:
-Bei Klick auf den Startbutton beginnt in A1 die verstrichene Zeit zu laufen beginnen bei 0:00:00 und die Datei start.mp3 wird abgespielt.
-Nach 10 Minuten wird die Datei zehn.mp3 abgespielt, nach 20 min zwanzig.mp3 und nach 30 min dreißig.mp3
-Bei Klick auf den Button Stopp hält die laufende Zeit in A1 an. Sollte der Button gedrückt werden bevor 30 Minuten um sind, werden die anderen mp3-Dateien natürlich nicht mehr abgespielt.
Im Internet und in diesem Forum habe ich bereits verschiedenes gelesen und ausprobiert aber nichts hat wie gewünscht funktioniert. Meine VBA-Kenntnisse sind auch nur sehr begrenzt. Hat jemand eine Idee Muss man für die Buttons Formular- oder ActiveX-Steuerelemente verwenden?

Bild

Betrifft: AW: Stoppuhr mit MP3-Ausgabe
von: Michael
Geschrieben am: 28.08.2015 01:17:57
Hi Mike,
das ist Hajos Trickkiste!
Schau mal http://hajo-excel.de/vba_sound.htm und http://hajo-excel.de/vba_stoppuhr.htm
Man sollte meinen, daß eine Kombination aus beiden Seiten genau das ist, was Du suchst.
Stöber mal ein bißchen, und falls Du nicht zurechtkommst, melde Dich halt nochmal.
Schöne Grüße,
Michael

Bild

Betrifft: AW: Stoppuhr mit MP3-Ausgabe
von: Mike
Geschrieben am: 28.08.2015 07:32:07
Hallo Michael,
vielen Dank. Das bringt mich ein ganzes Stück weiter. Wie kann ich die Codes z.B. für Tabelle 1 kombinieren?


Option Explicit                                     ' Variablendefinition erforderlich
Private Sub Cmd_Start_Click()
    If Cmd_Start.Caption = "Start" Then
        DaZeit = Time                               ' aktulle Zeit auf Variable
        Columns(1) = ""                             ' Inhalt Spalte A löschen
        Cmd_Start.Caption = "Stop"                  ' ändern der Beschriftung
        ZeigenZeit                                  ' laufende Zeit in Zelle A1 starten
    Else
        ' Endzeit eintragen
        Range("A1") = Format(Time - DaZeit, "hh:mm:ss")
        Cmd_Start.Caption = "Start"                 ' ändern der Beschriftung
        StopAnzeige                                 ' Abschalten der Prozedur ZeigenZeit
    End If
End Sub

mit
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    Sound_abspielen
End Sub
Viele Grüße
Mike

Bild

Betrifft: AW: Stoppuhr mit MP3-Ausgabe
von: Mike
Geschrieben am: 28.08.2015 08:12:21
Hallo,
noch eine kurze Ergänzung. mp3- und eigene wav-Dateien scheinen nicht zu funktionieren. Woran kann das liegen?
Mike

Bild

Betrifft: AW: Stoppuhr mit MP3-Ausgabe
von: Michael
Geschrieben am: 28.08.2015 12:05:32
Hallo Mike,
kannst Du das Ganze mal als Datei hochladen und mir mitteilen, aus welchen der vielen Beispiele von Hajo Du das entnommen hast?
Gruß,
Michael

Bild

Betrifft: AW: Stoppuhr mit MP3-Ausgabe
von: Mike
Geschrieben am: 28.08.2015 12:43:28
Hallo Michael,
die Datei sieht im Moment so aus:
https://www.herber.de/bbs/user/99875.xlsm
Verwendet habe ich folgende Ausgangsdateien:
http://hajo-excel.de/chCounter3/getfile.php?id=65 (Sound 2)
http://hajo-excel.de/chCounter3/getfile.php?id=93 (Stoppuhr1)
Mein Problem ist noch, die Codeteile richtig zu verknüpfen und mp3- oder eigene wav-Dateien abzuspielen.
Viele Grüße
Mike

Bild

Betrifft: AW: Stoppuhr mit MP3-Ausgabe
von: Mike
Geschrieben am: 28.08.2015 15:45:08
Hallo,
ich hoffe, dass mir jemand weiterhelfen kann und wünsche schon mal ein schönes Wochenende.
Mike

Bild

Betrifft: Uff! Stoppuhr und MP3
von: Michael
Geschrieben am: 28.08.2015 16:18:58
Hi Mike,
die Geschichte ist gar nicht so simpel.
Ich habe noch ein Modul "noch1sound" angelegt und ein bißchen herumexperimentiert.
Darin findest Du ganz unten einen Sound-Aufruf mit executeexcel4macro, der wäre handlicher, weil ohne API-Gepfriemel, spielt aber ebensowenig wie der vorliegende Code MP3 ab.
Erhellend ist immer wieder der CPearson (alle links in der Datei), der da schreibt, daß auf die Art a) WAVs abgespielt werden können und b) alle Parameter aufzählt, insbesondere die abschaltbare Standard-Einstellung, daß der Aufruf den Win-Standardsound abspielt, wenn das mit der Datei nicht klappt - und mit MP3 klappt es eben nicht.
Mit weiterer Recherche bin ich auf eine andere API gestoßen, die ich entsprechend eingebaut habe.
In "Tabelle1" habe ich die Sub Worksheet_Change so abgeändert, daß das jeweils nächste Stück bei 3 bzw. 6 Minuten abgespielt wird, das mußt Du nach Deinen Vorgaben abändern auf ="10" bzw. ="20".
Ansonsten scheint es zu tun.
Die Datei: https://www.herber.de/bbs/user/99879.xlsm
Schöne Grüße,
Michael

Bild

Betrifft: AW: Uff! Stoppuhr und MP3
von: Mike
Geschrieben am: 29.08.2015 18:33:39
Hallo Michael,
zunächst mal vielen Dank für deine Hilfe! Da hast du dir ja sehr viel Arbeit gemacht. Bei mir funktioniert soweit auch alles gut. Eine kleine Frage habe ich doch noch. Wie kann ich den Code noch um ein oder zwei Sounddateien erweitern? Ich nehme an in Modul noch1sound je eine Zeile mit lied (7)=... und lied (9)=... einfügen und in Tabelle 1 einige Zeilen mit
Else
If..
einfügen. Leider hat das bei mir noch nicht funktioniert.
Mike

Bild

Betrifft: Genau, so isses
von: Michael
Geschrieben am: 29.08.2015 19:46:56
Hi Mike,
im Modul noch1sound, Public Sub Sound_abspielen() die Zeilen einfügen, *und* in der Zeile direkt darüber
natürlich auf 9 erweitern:

Dim lied$(1 To 9)


Bild

Betrifft: ups, zu schnell auf "Absenden"
von: Michael
Geschrieben am: 29.08.2015 19:56:03
... und in "Tabelle1" dann so:

Private Sub Worksheet_Change(ByVal Target As Range)
If noch1sound.soundNr = 0 Then
  Sound_abspielen
  Else
   If noch1sound.soundNr = 2 Then
       If Mid(Target.Text, 3, 2) = "10" Then Sound_abspielen
     Else
      If noch1sound.soundNr = 4 Then
          If Mid(Target.Text, 3, 2) = "20" Then Sound_abspielen
        Else
         If noch1sound.soundNr = 6 Then
           If Mid(Target.Text, 3, 2) = "25" Then Sound_abspielen
          Else
            If noch1sound.soundNr = 8 Then
              If Mid(Target.Text, 3, 2) = "30" Then Sound_abspielen
            End If
         End If
      End If
   End If
End If
End Sub
Die IFs müßten passen, es kam keine Fehlermeldung á la "End If ohne If".
Ich bin jetzt aber, ehrlich gesagt, zu faul, mir wieder Datein zum Testen zusammenzusuchen und mir das ne halbe Stunde lang anzuhören.
Wird schon passen, hoffe ich.
Schöne Grüße,
Michael

Bild

Betrifft: AW: ups, zu schnell auf "Absenden"
von: Mike
Geschrieben am: 30.08.2015 00:05:20
Hallo Michael,
Super! Aller funktioniert wie gewünscht. Bei meinem Test vorher hatte ich vergessen, den Wert bei DIM zu erhöhen. Zum Testen habe ich übrigens nach jeweils einer Minute den nächsten Sound abspielen lassen, dann muss man nicht so lange warten ;-)
Viele Grüße
Mike

Bild

Betrifft: freut mich, wenn's tut, aber...
von: Michael
Geschrieben am: 30.08.2015 15:58:54
mir ist nicht zu 100% wohl dabei, mit dem mid(bla,3,2) zu arbeiten:
1. sind Stringfunktionen relativ langsam, und
2. traue ich der Formatierung nicht.
Letzteres könnte man durch die folgende Formel ersetzen (drück in VBA mal Strg+g, dann kannst Du sie im "Direktfenster" gleich eingeben: debug.print left(right("1:23:45",5),2)
Wenn Du Enter drückst, wird das Ergebnis 23 ausgegeben - das erscheint mir sicherer, benötigt aber sicher noch mehr Zeit als mid.
Evtl. wäre ne Abfrage nach Zeit sinvvoller, also sinngemäß:

If Target.Value >= 0.000347222222222221 Then Sound_abspielen

Der Wert entspricht ca. 30 vergangenen Sekunden; *Obacht*, in VBA mit Dezimal*PUNKT*; alle Nachkommastellen mußt Du ja nicht mit eingeben, und das "größergleich" ist insofern kein Problem, da in den Zweig nur gesprungen wird, wenn die soundNr paßt, d.h., das Abspielen wird nur je einmal ausgeführt.
Na denn, viel Spaß beim Basteln,
Michael

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Wiederholung Zeitreihen sortieren"