Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender Navigationstipps
Inhaltsverzeichnis

VBA Code anpassen für Zeitstudie?!

VBA Code anpassen für Zeitstudie?!
22.09.2003 18:43:39
Josef Bouchi
Hallo,

ich habe mir folgenden Code zusammengefrickelt. Hintergrund hierfür ist eine Stopuhr, mit der verschiedene Aktivitäten für eine Zeitstudie gemessen werden sollen.

Dieser Code ist bei 26 Command_Buttons mehr oder weniger gleich. Ich möchte den User aus Sicherheitsgründen darauf hinweisen, dass er immer nur eine Zeit messen kann. Wenn also schon eine Zeit läuft, dann soll der User durch eine entsprechende MsgBox darauf hingewiesen werden. Ich habe etwas versucht, aber das funktioniert so natürlich nicht, das ich so die Zeit mit dem eigentlich richtigen Button auch nicht mehr stoppen kann. Selbst reingelegt! :-)

So, was mir jetzt vorschwebt ist, dass allgemein erkannt wird, dass gerade irgendwo die Zeit läuft und dann eine Fehlermeldung ausgegeben wird, aber nicht wenn es der "richtige" Command-Button ist.

Ich hoffe das hat irgendwer verstanden. Danke für Euer Feedback.


Private Sub CommandButton1_Click()
If Range("E2").Value > "" Then
MsgBox "Please stop the time first and send it to the query." & Chr(13) & "Then proceed...Thanks!", vbInformation
ElseIf UserForm1.CommandButton1.Caption = "Start" Then
Zeit1 = Time
UserForm1.CommandButton2.Caption = "Time: " & Format(Range("E3") + Time - Zeit1, "hh:mm:ss")
NextTime1 = Now + TimeValue("00:00:00")
Application.OnTime NextTime1, "CommandButton1_Click"
Worksheets("Time&Motion").Range("E2").Select
ActiveCell.FormulaR1C1 = (Time - Zeit1) + Range("E3")
CommandButton1.Caption = "Stop"
Else: CommandButton1.Caption = "Stop"
Application.OnTime NextTime1, "CommandButton1_Click", , False
CommandButton1.Caption = "Start"
Worksheets("Time&Motion").Range("E3").Select
Selection.ClearContents
Sheets("Time&Motion").Select
Range("D2").FormulaR1C1 = "Incoming mail/cheques"
Range("F2").FormulaR1C1 = "Post Team"
End If
Range("A2") = Application.UserName
Range("B2").Select
ActiveCell.FormulaR1C1 = Date
End Sub


Viele Grüsse

Josef

P.S. Ich benutze eine englische Excel-Version!

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Code anpassen für Zeitstudie?!
22.09.2003 19:10:40
Hans W. Hofmann
Im Sinn eines konsistenten User-Interface wäre es angebracht, dass die nicht sinnvollen Optionen disabled werden und sich somit Dein Problem von alleine löst, oder?

Gruß HW
AW: VBA Code anpassen für Zeitstudie?!
22.09.2003 19:27:30
Josef Bouchi
Hallo,

Du meinst also, alle nicht benötigten Command-Buttons per

UserForm1.CommandButton(xyz).Visible = False

verschwinden lassen?

Ja, das wäre eine Möglichkeit, aber auch sehr aufwendig, da jeder Knopf einzeln angesprochen werden müsste. Aber, wahrscheinlich geht es nicht anders, oder?

Danke aber schon mal für die Idee.

Viele Grüsse

Josef
AW: VBA Code anpassen für Zeitstudie?!
22.09.2003 21:40:40
Hans W. Hofmann
Finde ich nicht.
Du durchläufst die Controls-Auflistung Deiner Form uns setzt bei allen
Buttons enabled = false (nix visible), der aktive Button wird wieder enabled.
Wo ist da der große Aufwand?

Gruß HW
Anzeige
AW: VBA Code anpassen für Zeitstudie?!
22.09.2003 22:53:55
Josef Bouchi
Hallo,

wie würde der Code denn genau ausehen? Ich bin nicht der Super VBA Spezialist.

Danke schön...

Josef
AW: VBA Code anpassen für Zeitstudie?!
24.09.2003 08:51:28
Hans W. Hofmann
Kann ich nicht genau sagen. Wie sind denn die Buttons in der
Auflistung verteilt?

for i=a to b
Me.Controls(i).Enabled = false
next

oder so...
ggf. ein Array für die Nummerierung (falls nicht lückenlos)?

Gruß HW
AW: VBA Code anpassen für Zeitstudie?!
24.09.2003 18:14:02
Josef Bouchi
Hallo,

sie sind leider nicht lückenlos, aber der Code hilft mir schon sehr weiter. Ich habe nämlich noch Multipages drin und werde es auf diesem Weg machen.

Danke für Deine Hilfe.

Wie ist eigentlich der Code für ein Array?

Viele Grüsse

Josef
Anzeige
AW: VBA Code anpassen für Zeitstudie?!
25.09.2003 13:04:33
Hans W. Hofmann
Etwa so:

Dim a as variant, i as integer
' a enthält die Indexnummer der Buttons...
a = Array(2,3,5,6,9,11,23,44,67)
for i=1 to Ubound(a)
Me.Controls(a(i)).Enabled = false
next


Gruß HW
AW: VBA Code anpassen für Zeitstudie?!
25.09.2003 13:54:50
Josef Bouchi
Hallo,

vielen Dank für deine Hilfe!

Grüsse

Josef

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige