Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1092to1096
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

Label alle 10 Sekunden für 5 Sekunden anzeigen

Label alle 10 Sekunden für 5 Sekunden anzeigen
k
Hallo,
...mal was anderes. Für unsere Azubis soll ein kleines "Lern-Spiel" gebastelt werden in Excel. Dazu sollen alle 10 Sekunden in einer Userform ein Produktname erscheinen und 5 Sekunden stehen bleiben. Der Azubi hat dann in dieser Zeit die Möglichkeit alles was ihm dazu einfällt in einer Textbox einzugeben.
Das die Produkte per Zufall in einem Label eingeblendet werden konnte ich realiseren, aber ich komme mit der Einbledung und Dauer nicht klar ?!
Versuchte es mit folgender Zeile bei Userform_Activate()
Application.OnTime Now + TimeSerial(0, 0, 10), "Produkte"
Produkte = Zufallsgenerator - der aus einer Liste per Zufall ein Begriff auswählt
Aber wenn ich die Userform starte passiert nichts ? Das Label aus der Produkte-Prozedure bleibt leer ?
Wer kann mir helfen, konnte im Archiv nichts passendens bisher finden !
Gruß und Danke
Kay
AW: Label alle 10 Sekunden für 5 Sekunden anzeigen
11.08.2009 16:53:14
Ramses
Hallo
Abgesehen davon dass in 5 Sekunden wohl nicht allzuviel eingetragen werden kann, solltest du auch mal die Prozedur "Produkte" zeigen
Gruss Rainer
AW: Label alle 10 Sekunden für 5 Sekunden anzeigen
11.08.2009 17:38:45
k
Hallo,
5 Sekunden ist tatsäschlich knapp - eigentlich sollte da auch 15 stehen, aber man kann sicherlich eine Variable dort einsetzen und es dann dem "niveau" der Azubis anpassen...
Der Code für die Produkte:
Sub Produkte()
z = Int((150 - 3 + 1) * Rnd + 3)
Produkt = Worksheets("Artikel").Cells(z + 2, 5)
Label_Produkt.Caption = Produkt
End Sub
Die Produktliste steht unter dem Artikel-Tabellenblatt in Spalte E ab E2 bis E152...
Gruß und Danke
Kay
Anzeige
AW: Label alle 10 Sekunden für 5 Sekunden anzeigen
11.08.2009 18:16:44
Daniel
Hi
schau dir mal das hier an, vielleicht kannst du das für deine Zwecke verwenden.
https://www.herber.de/bbs/user/63765.xls
btw was hast du denn für Azubis? Was sollen die denn lernen? Schreibmaschine oder Assoziieren?
im 2. Fall sollten sie das erste aber schon können.
Gruß, Daniel
AW: Label alle 10 Sekunden für 5 Sekunden anzeigen
11.08.2009 21:44:34
Kay
Hallo Daniel,
vielen Dank ! Ja das Teil hat mir sehr weitergeholfen - konnte es für mich umschreiben und habe auch meinen Fehler so entdecken können (Hatte noch in den Eigenschaften der Labels sie auf Visible=False) stehen von einem anderen Versuch mit ein und ausblenden und so...nicht mehrgesehen, sobald die Userform aktiv war ;o(
Aber das Tool entspricht in etwas dem was ich suchte. Nun, um auch auf Deine AZUBI Frage zu antworten:
Es sind Ázubi für Bürokommunikation, die PC-Arbeit und schnelles schreiben lernen sollen und zeitgleich bei uns im Einkauf sitzen und da kam die Idee auf - PRodukte lernen mit der Übung schnelles schreiben ;o)
OK, nach einigen Tests haben wir es so gemacht, das wir mit 10 Sekunden starten ... und über eine Zelle kann die Zeit jederzeit angepasst werde.
Vielen Dank also auch im Namen unserer Azubis ;o)
Gruß
Kay
PS: Wie kann ich die Funktion killen ? Habe bemerkt, dass wenn das Fenster wieder schließt - der Counter irgendwie weiter mitgeht und noch im Hintergrund noch was geschieht in Excel - vermute (augfgrund von Beobachtungen - ohne wissenschaftl. Methoden), dass die Codes es noch genau so lange taten - wie Felder offen waren - also bis einmal alles durchgelaufen war. Wie kann ich mit dem Schließen diesen Prozess killen ?!
Anzeige
AW: Label alle 10 Sekunden für 5 Sekunden anzeigen
11.08.2009 22:17:44
Daniel
Hi
für die Zielgruppe ist das sicherlich kein schlechtes Spielchen, selbst mich hat beim Testen der Ehrgeiz gepackt, möglichst viele Begriffe einzutippen (in 10 sec sind schon ein paar möglich).
zur Frage, wie du diesen Prozess killst steht in der Hilfe zur OnTime-Methode:
Schedule  Optionaler Variant-Wert. True führt eine neue OnTime-Prozedur aus.
False löscht eine vorher eingestellte Prozedur. Der Standardwert ist True
Application.OnTime EarliestTime:=TimeValue("17:00:00"), _
Procedure:="my_Procedure", Schedule:=False

diese Prodzedur müsstest du dann entsprechend angepasst beim Schließen der Userform laufen lassen, also beim Userform-Event: TERMINATE.
dieses Event läuft bei UNLOAD oder wenn auf das Schließkreuz der Userform geklickt wird.
da hierfür die Ausführzeit bekannt sein muss, müsstest du die Ausführzeit (Now+Timeserial(0,0,5)) in einer globalen Variablen ablegen (wie ZEILE in meinem Beispiel), damit sie auch für das TERMINATE-Makro zur verfügung steht.
Gruß, Daniel
Anzeige
AW: Label alle 10 Sekunden für 5 Sekunden anzeigen
11.08.2009 20:41:26
Ramses
Hallo
Was willst du denn mit
Label_Produkt.Caption = Produkt
bewirken ? Das kann doch nicht funktionieren. Woher soll EXCEL denn wissen WO das "Label_Produkt" ist.
Wenn schon müsste es so heissen
UserformName.Label_Produkt.Caption = Produkt
Gruss Rainer

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige