Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1700to1704
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
Inhaltsverzeichnis

Metronom

Metronom
11.07.2019 09:20:00
Antonio
Hallo Gemeinde,
ich wüede gerne auf meiner Form eine art Metronom einbauen.
1_Meine Idee ist ein Button oder Label mit einen Timer den Takt zu zählen, Bsp. 4/4
Button oder Label sollen visible auf 1...2...3...4, dazwischen nicht.
2_Der Beep söll auf 1 unterschiedlich sein.
3_Der Takt soll veränderbar sein, spricht: 2/4 - 3/4 - 4/4 .
4_Die Geschwindigkeit vom Timer soll variable sein, von 50....300.
Ich suche kein fertiges Produkt sondern Anregungen da ich nie mit einen Timer gearbeitet habe.
Vielen Dank im Voraus
Antonio

37
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Metronom
11.07.2019 09:43:05
Rainer
Hallo Antonio,
Du startet den Timer, z.B. so einen:
https://stackoverflow.com/questions/939230/how-to-get-a-datediff-value-in-milliseconds-in-vba-excel
Dann startet du eine Endlosschleife:

Hoelle = "heiß"
zugefroren = "kalt"
Do While Hoelle  zugefroren
Loop
In dieser musst du dann berechnen, ob deine Timerzeit abgelaufen ist und wenn ja, den Button leuchten lassen, den Ton abspielen und den Timer erhöhen.
Sehr wichtig ist auch, dass diese Schleife einen Abbruch enthält und zusaätzlich noch "DoEvents", damit die Oberfläche von Excel nicht "einfriert".
Gruß, Rainer
Anzeige
AW: Metronom
11.07.2019 10:27:13
Antonio
Hallo Reiner,
ich werde versuchen die Beispiele von stackoverflow zu verstehen.(Einfach ist für mich nicht)
Werde mich dann wieder melden.
Danke für die Anregungen
Antonio
AW: Metronom
11.07.2019 10:13:56
Dieter(Drummer)
Hallo Antonio,
evtl. kannst du damit etwas anfangen:
https://www.mrexcel.com/forum/excel-questions/712762-creating-metronome.html
Gruß, Dieter(Drummer)
AW: Metronom
11.07.2019 11:04:40
Antonio
Hallo Dieter,
habe den code so geändert:
Option Explicit
Dim Cancel As Boolean
Private Sub CommandButton1_Click()
Cancel = True
End Sub
Private Sub UserForm_Activate()
Dim PauseTime, Start
Me.Label1.Caption = 4
10:
PauseTime = 1
Start = Timer
Do While Timer 
Er Zählt auch brav von 4 abwärts.
MsgBox war nervig und habe rausgenommen.
Private Sub CommandButton1_Click()
Cancel = True
End Sub

Hier verstehe ich nicht was passiert.
der Code is nicht zu stoppen, durch die Schleife läuft unendlich.
Dieser Sub wird niergens aufgerufen:
Option Explicit
Sub MetronomeSet(iTime As Integer)
' Sub called by metronome buttons _
The argument passed by the buttons is _
x beats/minute
Metronome.Label1 = iTime
Metronome.Show
End Sub
Sub test()
MetronomeSet 60
End Sub
https://www.herber.de/bbs/user/130838.xlsm
Vielleicht kannst du ein wenig im Code angreifen.
Vielen Dank im Voraus
Antonio
Anzeige
AW: Hallo Antonio, da kann ich nicht ...
11.07.2019 12:36:22
Dieter
... weiter helfen. Sorry ...
Gruß, Dieter(Drummer)
AW: Hallo Antonio, da kann ich nicht ...
11.07.2019 12:47:00
Antonio
Danke trotzdem
Antonio
AW: Hallo Antonio, da kann ich nicht ...
11.07.2019 12:48:12
Rainer
Hallo Antonio,
der Code ist ziemlicher Murks.
Die Sub "test" dient zum Start, weil dort die Zeit festgelegt wird. 60 Äpfel vermute ich, bin aber kein Musiker.
Der CommandButton soll die Abbruchbedingung auslösen. Das ist aber auch Murks, weil nach "Unload Me" direkt "UserForm1.Show" aufgerufen wird und der Spaß von vorn losgeht.
Die übertragene Zeit "itime" wird auch in der Berechnung nie benutzt.
Gehören deine beiden Codes "UserForm1" und "Modul1" überhaupt zusammen?
Gruß, Rainer
Anzeige
AW: Hallo Antonio, da kann ich nicht ...
12.07.2019 09:31:17
Antonio
Hallo Rainer,
https://www.mrexcel.com/forum/excel-questions/712762-creating-metronome.html
den Code habe ich von dieser Seite, habe versucht ihn umzubauen ohne Erfolg.
Anstatt UserForm Activate, habe ich ein ToggleButton auf der Form, das Ganze läuft aber nur einmal.
Der Rest ist wirklich Murks. Unten mein letzter Stand:
https://www.herber.de/bbs/user/130858.xlsm
Mit Alt F11 kommst du in der Entwikler Umgebung (aber ich glaube das weiß du)
LG
Antonio
AW: Mal andere Variante ...
12.07.2019 09:58:31
Dieter(Drummer)
Hallo Antonio,
... aus der du evtl. Anregungen oder Möglichkeiten findest, mir denen du etwas anfangen kannst.
Ansonsten kann ich nicht weiter helfen.
Gruß, Dieter(Drummer)
https://www.herber.de/bbs/user/130861.xlsm
Anzeige
AW: Mal andere Variante ...
12.07.2019 10:34:02
Antonio
Hi Dieter
danke für den Code, werde versuchen auf UserForm zu integrieren.
Wird nicht einfach sein weil:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Target kann man nur auf Worksheet anwenden in UserForm kommt ein Fehler.
Aber ich werde es trotzdem weiter probieren.
Danke an alle
Antonio
AW: Mal andere Variante ...
12.07.2019 10:35:38
Antonio
:-)
vergessen den Kontrollkästchen zu aktivieren, falls mehr Anregungen kommen sollten.
Antonio
AW: Mal andere Variante ...
12.07.2019 10:36:07
Antonio
.
AW: Mal andere Variante ...
13.07.2019 16:57:24
Rainer
Hallo Antonio,
vorab, ich finde Dieters Lösung ohne Einschränkung gelungen.
Ich habe hier nochmal die UserForm Variante neu gemacht.
Schönes Wochenende,
Rainer
Anzeige
AW: Hier noch der Link!
14.07.2019 20:39:54
Rainer
Hallo Antonio, Hallo Dieter,
bitte fügt in den Code der UserForm noch ein:
Private Sub UserForm_Terminate()
ToggleButton1.Value = False
End Sub
Sonst läuft die Schleife weiter auch nachdem die UserForm geschlossen wurde.
Gruß, Rainer
AW: Danke Rainer ...
14.07.2019 21:51:43
Dieter(Drummer)
Hallo Rainer,
... hab den Code noch in Userform eingefügt und es klappt prima. Takt läuft sauber und flüssig durch.
Danke und einen schönen Abend.
Gruß, Dieter(Drummer)
AW: Interessante Variante, aber ...
13.07.2019 17:22:01
Dieter(Drummer)
Hallo Rainer,
...es fehlen wohl folgende DIM Anweisungen, wenn Option Explicit aktiviert ist, die ich aber nicht kann.
Dim BeatCount ?
Dim Takt ?
Dim Beginn ?
Dim Ende ?
Gruß, Dieter(Drummer)
Anzeige
AW: Interessante Variante, aber ...
13.07.2019 17:51:15
Rainer
Hallo Dieter,
ja, ich programmiere meist ohne Option Explicit.
Beginn und Ende werden über die Timer Funktion gefüllt. Diese liefert Werte vom Typ "Single".
https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/timer-function
Hierbei fällt mir auf, dass der Code so auf einem Apfelcomputer natürlich nicht gehen wird, da dort Timer nur ganze Sekunden liefert.
"BeatCount" und "Takt" können nur ganze Zahlen liefern. "BeatCount" ist nur ein simpler Zähler, weil Antonio jeden 4. "Beat" mit extra Markierung wollte. "Takt" wird über den SpinButton gesteuert und kann nur 10er Werte von 30 bis 300 annehmen.
Gruß, Rainer
Anzeige
AW: Danke Rainer, ist ja auch nur ...
13.07.2019 18:00:01
Dieter(Drummer)
... eine andere Variante, die ohne Option Explicit ja geht.
Gruß, Dieter(Drummer)
AW: Danke Rainer, ist ja auch nur ...
13.07.2019 18:06:41
Rainer
Hallo Dieter,
ich habe ja auch nichts gegen "Option Explicit", hat auch Vorteile. Dann ist es aber meines Erachtens nach auch besser, den Variablentyp in die Variablenbezeichnung aufzunehmen, dann sieht man leichter ob es zu Konflikten führen kann.
Excel VBA legt den Variablentyp aber zur Not auch selber fest. Schau mal dem Code im Debugger zu.
Am Ende von der Schleife nach einmaligem Durchlauf:

: BeatCount : 1 : Variant/IntegerBeatCount : 1 : Variant/Integer
: Takt : "120" : Variant/String
: Beginn : 65031.62 : Variant/Single
: Ende : 65032.1171875 : Variant/Double
Auch mit "dreckiger" Zuordnung (String statt Integer) kommt es noch gut damit zurecht.
Gruß, Rainer
Anzeige
AW: Danke Rainer, für Info und ...
13.07.2019 18:44:17
Dieter(Drummer)
... deine Bemühung. Ich lass es wie es von dir erstellt wurde.
Gruß und einen schönen Abend,
Dieter(Drummer)
AW: Danke Rainer, für Info und ...
15.07.2019 06:18:32
Antonio
Hallo Rainer,
sorry aber ich war über's Wochenende nicht online.
Es ist super was du gezaubert hast, vielen Dank.
Ich hätte noch ein Paar Fragen (ich hoffe nicht nervig zu sein):
1_ist es möglich mit dem BEEP das nur der erste Ton tiefer ist?
so zB.: tock -tick-tick-tick.....tock -tick-tick-tick usw.
2_wo kann ich den Takt ändern oder ergänzen ,von 4/4 auf 3/4
ich hoffe nicht viel zu verlangen, falls ja, brauchst nicht mehr zu antworten.
Trotzdem eine sehr gelungene Arbeit.
Dieter dir auch Danke für deine Interesse.
Vielen Dank im Voraus
Antonio
Anzeige
AW:...ein kleiner Fehler....
15.07.2019 06:22:07
Antonio
Hallo Rainer,
ich soll erstmal richtig zuhöhren.
Das mit dem BEEP ist genau so wie ich es wollte
Die erste Frage wäre damit erledigt.
Antonio
AW:...ein kleiner Fehler....
15.07.2019 06:22:08
Antonio
Hallo Rainer,
ich soll erstmal richtig zuhöhren.
Das mit dem BEEP ist genau so wie ich es wollte
Die erste Frage wäre damit erledigt.
Antonio
AW:...ein kleiner Fehler....
15.07.2019 06:22:22
Antonio
Hallo Rainer,
ich soll erstmal richtig zuhöhren.
Das mit dem BEEP ist genau so wie ich es wollte
Die erste Frage wäre damit erledigt.
Antonio
AW:...ein kleiner Fehler....
15.07.2019 06:22:23
Antonio
Hallo Rainer,
ich soll erstmal richtig zuhöhren.
Das mit dem BEEP ist genau so wie ich es wollte
Die erste Frage wäre damit erledigt.
Antonio
AW: AW:...ein kleiner Fehler....
15.07.2019 06:24:15
Antonio
Firefox hat ein Fehler gemeldet und beim ernuet versuchen eine Verbindung zu erhalten ist die Nachricht so oft gesendet worden
Antonio
Metronom mit Takten
15.07.2019 10:12:04
Rainer
Hallo Antonio,
wenn beim Beitrag schreiben ein Fehler entsteht, dann darf man beim Herber-Forum nicht aktualisieren. Klicke auf zurück, markiere und kopiere deinen Beitragstext. Dann lade "https://www.herber.de/forum/" title="Auf der Suche nach einer Lösung für deine Excel-Probleme? Dann bist du beim Excel-Forum xlforum.herber.de genau richtig! Unser Forum bietet dir eine breite Palette an Expertenwissen, Tipps und Tricks rund um das Thema Excel. Egal, ob du ein Anfänger bist oder bereits Erfahrung hast, unsere Community steht dir jederzeit mit Rat und Tat zur Seite. Du möchtest mehr über die neuesten Excel-Features erfahren? Oder brauchst du Hilfe bei der Erstellung komplexer Formeln? Kein Problem! In unserem Forum findest du eine Vielzahl von Beiträgen, die dir dabei helfen, deine Excel-Kenntnisse zu verbessern. Und das Beste: Das Excel-Forum xlforum.herber.de ist komplett kostenlos! Melde dich noch heute an und werde Teil unserer wachsenden Community von Excel-Enthusiasten. Wir freuen uns darauf, dich kennenzulernen und dir dabei zu helfen, das Beste aus Excel herauszuholen!"> Hier ist noch eine neue Version vom Metronom, mit 3 Taktarten:
https://www.herber.de/bbs/user/130908.xlsm
Ich bin aber kein Musiker, hoffentlich ist das so richtig?
Gruß, Rainer
AW: Metronom mit Takten
15.07.2019 10:43:26
Antonio
Hi Rainer,
ist ja wahnsinn, genau die 3 Takt arten wollte ich haben.
Ich hatte versucht mit "Select Case" ohne Erfolg. DANKE.
Du bist zwar kein musiker aber du hast ein gespühr dafür.
Wenn ich noch einmal fresch sein darf, hätte ich noch eine Bitte:
wäre es möglich anstatt TIK....TOK
das beim auswählen der jeweiligen Takt : 1...2...1...2 - 1...2...3...1...2...3 - 1...2...3...4...usw.
das heißt wenn ich Takt 2 wähle im label erscheinen die Zahlen 1 und 2
wenn Takt 3 gewählt wird erscheinen die Zahlen 1 und 2 und 3, und beim Takt 4 1..2..3..4..
Wenn zu schwer ist dann bin ich zufrieden mit der letzte Version.
Viel Dank Im Voraus
Antonio
AW: Metronom mit Takten
15.07.2019 11:06:07
Dieter(Drummer)
Hallo Rainer,
auch wenn du kein Musiker bist, ist das prima, was du da gemacht hast.
Ich war 50 Jahre Drummer (Hobby neben Beruf) und das passt, was du da erstellt hast.
Habe mit Ralf Hütter (Kraftwerk), in den 60er Jahren in Krefeld, mit Musik begonnen. Später entstand dann die Gruppe Kraftwerk, Gründer Ralf Hütter und ich war in anderen Bands tätig.
Gruß, Dieter(Drummer)
AW: Metronom mit Takten
15.07.2019 11:08:05
Rainer
Hallo Antonio,
Das ist einfach.
Ersetze die erste Zeile durch die Zweite.

'If Label1.Caption = "tok" Then Label1.Caption = "tik" Else Label1.Caption = "tok"
Label1.Caption = 1 + BeatCount Mod Takt
Du musst auch mal gucken, welche Variante hier "runder" klingt:
    If BeatCount Mod Takt = 1 Then Call Beep(333) Else Call Beep(444)

oder
    If BeatCount Mod Takt = 0 Then Call Beep(333) Else Call Beep(444)
Im ersten Fall (so wie es jetzt ist) kommt der tiefe Ton, wenn grün nach weiß wechselt.
Im zweiten Fall kommt der tiefe Ton, wenn weiß nach grün wechselt.
Gruß, Rainer
AW: Metronom mit Takten
15.07.2019 11:18:57
Rainer
Hallo Antonio, Hallo Dieter,
hier noch eine kleine Spielerei, welche 2,3,4 (je nach Takt) verschiedene Töne erzeugt:
    'If BeatCount Mod Takt = 0 Then Call Beep(333) Else Call Beep(444)
Tonfrequenz = Int(333 + 111 * ((1 + BeatCount Mod Takt) / Takt))
Call Beep(Tonfrequenz)
Die erste Zeile durch die letzten beiden ersetzen.
Gruß, Rainer
AW: Metronom mit Takten
15.07.2019 11:45:10
Antonio
Hallo Rainer,
ist ja fantastisch, das ist ein TRAUM.
Ich habe diesen Satz:
 If BeatCount Mod Takt = 1 Then Call Beep(333) Else Call Beep(444)
so geändert und klingt für mich gut:
 If BeatCount Mod Takt = 1 Then Call Beep(550) Else Call Beep(250)
Ich hoffe das es keine Konflikte gibt.
Jeder würde hier in Forum sagen: es gib ja tausende Metronome in Netz, stimmt, aber keiner läss sich in einer Arbeitsmappe integrieren so wie dein Metronome,
Ich spiele schon seit 45 Jahre Gitarre, angefangen habe ich mit Klassisch dann in Jazz über gegangen.
Da programmieren auch eine Leidenschaft von mir ist, habe ein programm in VBA realisiert wo man ein Jazz Titel, in einer ListBox, aussuchen kann und schon sind die Noten in ein WebBrowser zu sehen.
In einer zweite ListBox kann man die entsprechend BackingTracks wählen und schon kann man los legen.
Da ich aber mein Programm auch für meine Schüler verwende, habe mir gadacht ein Metronome wäre nicht schlecht.
Und schon ist er da, danke dir.
Falls Dieter der Drummer auch zufrieden ist und keine weitere Frage oder Wünsche hat, kann man dieser langer Thread schliessen.
Rainer nochmal vielen Dank für deine Mühe und deine Geduld.
Dieter dir auch ein Dank für deine Interesse und Mitbeteiligung.
Danke für Alles
Antonio
AW: Hallo Antonio ...
15.07.2019 11:54:12
Dieter(Drummer)
... ich finde auch, dass Rainer da eine prima Sache erstellt hat.
Gerne beteilige ich mich, soweit es möglich ist, an interessanten Fragen und Antworten in diesem Forum.
Gruß und eine tolle Musikerzeit,
Dieter(Drummer)
AW: Hallo Antonio ...
15.07.2019 16:26:25
Rainer
Schön dass es euch gefällt.
Viel Spaß damit!
Gruß, Rainer
AW: Danke für deine Varianten, die gut ...
15.07.2019 11:47:17
Dieter(Drummer)
Hallo Rainer,
... funktionieren. Da hast du eine runde Sache erstellt.
Gruß und nochmal Danke,
Dieter(Drummer)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige