Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Funktion aus mehrere Schaltflächen ausdehnen

Forumthread: Funktion aus mehrere Schaltflächen ausdehnen

Funktion aus mehrere Schaltflächen ausdehnen
21.01.2004 10:46:05
Glen
Hallo liebe Leute
Ich habe hier im Forum für mein Anliegen eine Super Lösung (von Chris) erhalten die einwandfrei funktioniert.
So läuft das Makro:
wenn die Schaltfläche3 gedrückt wird, erscheint nach 5 Sek. die MsgBox "Meldung_Anlieferung". Brauche ich auch so!
meine Frage ist nun:
ist es jetzt möglich diesen VBA-Code so abzuändern, dass wenn ich noch weitere Schaltflächen hinzufüge, jede Schaltfläche ihre individuelle MsgBox (also immer ihren eigenen Text) ausgibt?
Hier das Makro:
Option Explicit
Public Const gsMacro As String = "Meldung_Anlieferung"
Public gdNextTime As Double

Sub StartClock()
gdNextTime = Now + TimeValue("00:00:05")
Application.OnTime earliesttime:=gdNextTime, procedure:=gsMacro, schedule:=True
End Sub


Sub StopClock()
On Error Resume Next
Application.OnTime earliesttime:=gdNextTime, procedure:=gsMacro, schedule:=False
End Sub


Sub Schaltfläche3_BeiKlick()
Range("G8").Select
ActiveCell.FormulaR1C1 = "b"
Call StartClock
Range("I8").Select
Selection.ClearContents
Range("G8").Select
End Sub


Sub Meldung_Anlieferung()
MsgBox "Die Zeit der Anlieferung ist abgelaufen", vbExclamation, "GrL informieren"
End Sub


Sub Schaltfläche4_BeiKlick()
Call StopClock
Range("I8").Select
ActiveCell.FormulaR1C1 = "kb"
Range("G8").Select
Selection.ClearContents
Range("I8").Select
End Sub

Jetzt kommen die nächsten beiden Schaltflächen und die Schaltfläche4 sollte auch nach 5 Sek. eine eigene MsgBox ausgeben, nähmlich mit (WA1) anstelle von (Anlieferung).

Sub Schaltfläche4_BeiKlick()
Call StopClock
Range("I8").Select
ActiveCell.FormulaR1C1 = "kb"
Range("G8").Select
Selection.ClearContents
Range("I8").Select
End Sub


Sub Schaltfläche5_BeiKlick()
Range("G10").Select
ActiveCell.FormulaR1C1 = "b"
Call StartClock
Range("I10").Select
Selection.ClearContents
Range("G10").Select
End Sub


Sub Meldung_WA1()
MsgBox "Die Zeit der WA1 ist abgelaufen", vbExclamation, "GrL informieren"
End Sub

Danke schon mal im voraus für die Tipp's und Hilfe
Gruss Glen
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Funktion aus mehrere Schaltflächen ausdehnen
21.01.2004 11:14:21
Alex K.
Hallo Glen,
die Sache ist im Grund ganz einfach. Du mußt deiner Start-Clock als Paramter den Namen der Prozedur mitgeben, welche aufgerufen werden soll.
Also ersetze die Prozedur "Start_Clock" durch folgende:

Sub StartClock(Proc As String)
gdNextTime = Now + TimeValue("00:00:05")
Application.OnTime earliesttime:=gdNextTime, procedure:=Proc, schedule:=True
End Sub

Und die Schaltfläche3_BeiKlick und Schaltfläche5_BeiKlick durch:

Sub Schaltfläche3_BeiKlick()
Range("G8").Select
ActiveCell.FormulaR1C1 = "b"
Call StartClock("Meldung_Auslieferung")
Range("I8").Select
Selection.ClearContents
Range("G8").Select
End Sub
Sub Schaltfläche5_BeiKlick()
Range("G10").Select
ActiveCell.FormulaR1C1 = "b"
Call StartClock("Meldung_WA1")
Range("I10").Select
Selection.ClearContents
Range("G10").Select
End Sub

Anzeige
Das ist es noch nicht ganz
21.01.2004 11:41:40
Glen
Hallo Alex
Danke erst mal! das ist es aber noch nicht ganz.
Was jetzt geht ist:
Es werden für "Anlieferung" und "WA1" eigene MsgBoxen angezogen - SUPER! jedoch bei betätigen der Schaltfläche6 (StopClock zu WA1) wird die MsgBox zu "WA1" nicht unterdrückt, sie erscheint trotzdem.
Bitte nochmals um Hilfe.

So schaut's jetzt aus:
Option Explicit
Public Const gsMacro As String = "Meldung_Anlieferung"
Public gdNextTime As Double

Sub StartClock(Proc As String)
gdNextTime = Now + TimeValue("00:00:02")
Application.OnTime earliesttime:=gdNextTime, procedure:=Proc, schedule:=True
End Sub


Sub StopClock()
On Error Resume Next
Application.OnTime earliesttime:=gdNextTime, procedure:=gsMacro, schedule:=False
End Sub


Sub Schaltfläche3_BeiKlick()
Range("G8").Select
ActiveCell.FormulaR1C1 = "b"
Call StartClock("Meldung_Anlieferung")
Range("I8").Select
Selection.ClearContents
Range("G8").Select
End Sub


Sub Meldung_Anlieferung()
MsgBox "Die Zeit der Anlieferung ist abgelaufen", vbExclamation, "GrL informieren"
End Sub


Sub Schaltfläche4_BeiKlick()
Call StopClock
Range("I8").Select
ActiveCell.FormulaR1C1 = "kb"
Range("G8").Select
Selection.ClearContents
Range("I8").Select
End Sub


Sub Schaltfläche5_BeiKlick()
Range("G10").Select
ActiveCell.FormulaR1C1 = "b"
Call StartClock("Meldung_WA1")
Range("I10").Select
Selection.ClearContents
Range("G10").Select
End Sub


Sub Meldung_WA1()
MsgBox "Die Zeit der WA1 ist abgelaufen", vbExclamation, "GrL informieren"
End Sub


Sub Schaltfläche6_BeiKlick()
Call StopClock
Range("I10").Select
ActiveCell.FormulaR1C1 = "kb"
Range("G10").Select
Selection.ClearContents
Range("I10").Select
End 

Sub

Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige