Beim Start der Arbeitsmappe soll ein Userform gestartet warden, welches abfragt ob ein Einsatz gestartet werden soll. Wenn nein, wird der Dialog geschlossen, wenn Ja soll eine Prozedur eines Commandbuttons (Cmd_StartOrtsFW mit der Prozedur "Sub Cmd_StartOrtsFW_Click() ) gestartet werden. Diesen muss auch manuell gestartet warden können, z.B. wenn bei der vorherigen Userform Nein geklickt wurde.
Wie kann ich auf eine Prozedur eines Commandbuttons in der Tabelle 4 zugreifen und diese Starten? Geht das überhaupt, dass ein Commandbutton einer Userform ein anderen Commandbutton aktiviert (wie wenn dieser angeklickt würde)?
Oder kann man die Prozedur Cmd_StartortsFW_Click() mit einer Schaltfläche realisieren? Dann könnte ich das Makro auch auf die "JA-Taste" zuweisen aber ich bräuchte dabei Hilfe beim umprogrammieren (gibt immer wieder Fehler in der Variablendeklaration und WithBlocks).
Ich hätte euch die Datei gerne zur Verfügung gestellt, doch ist diese ein bisschen grösser als die 300KB.
Vielen Dank für die Hilfe!
Marcel
Die Prozedur die durch "Ja" gestartet warden soll:
Option Explicit
Private Sub Cmd_StartOrtsFW_Click()
' Einsatzdatum und Zeit eintragen und Werte einfügen
If Cmd_StartOrtsFW.Caption = "START Ortsfeuerwehr" Then
Range("C14").Select
ActiveCell.FormulaR1C1 = "=NOW()"
Range("C14").Select
Selection.Copy
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveSheet.Paste
Application.CutCopyMode = False
' Datum eintragen, Zelle formatieren und Werte einfügen
Range("B8:C8").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 1
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
ActiveCell.FormulaR1C1 = "=TODAY()"
Range("B8:C8").Select
Selection.InsertIndent 1
Selection.Copy
Range("B8:C8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B9").Select
Application.CutCopyMode = False
Range("C9").Select
End If
' Einsatzende und Zeit eintragen udn Werte einfügen
If Cmd_StartOrtsFW.Caption = "Stopp OrtsFW" Then
Range("D14").Select
ActiveCell.FormulaR1C1 = "=NOW()"
Range("D14").Select
Selection.Copy
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveSheet.Paste
Application.CutCopyMode = False
End If
' ändern der Beschriftung
If Cmd_StartOrtsFW.Caption = "START Ortsfeuerwehr" Then
Cmd_StartOrtsFW.Caption = "Stopp OrtsFW"
' Zeit aus Zelle lesen
DaZeitAlt = ThisWorkbook.Worksheets("Einsatzkostenrapport").Range("E14")
DaZeit = Time
ZeigenZeitO ' laufende Zeit in Zelle starten
Else
Cmd_StartOrtsFW.Caption = "START Ortsfeuerwehr" ' ändern der Beschriftung
On Error Resume Next ' Fehlerbehandlung ausschalten
Application.OnTime EarliestTime:=DaEt, _
Procedure:="ZeigenZeitO", Schedule:=False
On Error GoTo 0 ' Fehlerbehandlung einschalten
End If
End Sub
---------------------------------------
Die Userform Prozedur:
Private Sub Cmd_JA_Click()
'soll Cmd_StartOrtsFW_Click() in der Tabelle 4 aktivieren
wkbOpenEinsatz.Hide
End Sub