Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1572to1576
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

Commandbutton steuert Commandbutton

Commandbutton steuert Commandbutton
17.08.2017 13:05:45
Spuler
Guten Tag
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

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Commandbutton steuert Commandbutton
17.08.2017 13:25:46
ChrisL
hi
"Private" Prozeduren kannst du nur innerhalb vom gleichen Modul ansprechen, aber wie ich verstehe sind unterschiedliche Module (Tabelle, Userform) involviert.
Darum würde den Code als "normales Makro" in ein Standardmodul (nicht im Modul der Tabelle oder Userform) legen. Dieses Makro kannst du dann von deinen Commandbuttons aus starten...
Call Makro1
cu
Chris
AW: Commandbutton steuert Commandbutton
17.08.2017 14:40:22
Spuler
Hi Chris
Vielen Dank für deine Hilfe. Habe die das Makro unter einem normalen Modul angelegt aber jetzt gbt er mit den Fehler: "Laufzeitfehler 424: Objekt erforderlich"
Der Debuggre zeigt die Fett markierte Zeile an.
Kannst du mir nochmal weiterhelfen?
Vielen Dank im Voraus!
Gruss Marcel
Neue Prozedur unter einem Modul:
Sub Cmd_StartOrtsFW_Click()
Sheets("Einsatzkostenrapport").Select
' 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

Anzeige
AW: Commandbutton steuert Commandbutton
17.08.2017 16:25:17
ChrisL
Hi
Versuch mal...
If Sheets("Einsatzkostenrapport").Cmd_StartOrtsFW.Caption = "START Ortsfeuerwehr" Then
Ansonsten bitte eine Beispieldatei hoch laden.
cu
Chris
AW: Commandbutton steuert Commandbutton
18.08.2017 07:58:10
Spuler
Perfekt, hat funktioniert!
Vielen Dank!!!
AW: Commandbutton steuert Commandbutton
17.08.2017 18:44:45
Mullit
Hallo,
das geht auch mit Button-Click-Events, die als 'Private' deklariert sind:
Private Sub Cmd_JA_Click()
'soll Cmd_StartOrtsFW_Click() in der Tabelle 4 aktivieren
Tabelle4.Cmd_StartOrtsFW.Value = True
wkbOpenEinsatz.Hide
End Sub

Gruß, Mullit

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige