Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema ToggleButton
BildScreenshot zu ToggleButton ToggleButton-Seite mit Beispielarbeitsmappe aufrufen

Toggelbutton per Makro erstellen

Betrifft: Toggelbutton per Makro erstellen von: Manasse
Geschrieben am: 14.11.2012 17:10:46

Hallo zusammen,

ich habe eine Liste, die Daten inklusiv Weltzeit (UTC) enhält. Diese Tabelle lasse ich mir per Makro sortieren und füge in ein Feld die aktuelle Tageszeit ein. Zur Umrechnung der Tageszeit in UTC habe ich ein Eingabefeldeld, in das ich entweder MEZ oder MESZ eintrage, damit die Umrechnung der Tageszeit in UTC erfolgen kann.
Nun möchte ich gerne mit meinem bereits bestehenden Makro auch noch einen Toggel-Butten erstellen lassen, mit dem der Inhalt des Feldes für die Eingabe MEZ und MESZ einfach per Button-Klick geändert wird.

IST SO ETWAS MÖGLICH??
Mit Makroaufzeichnen geht das nicht, weil die Aufzeichnung im Modul erfolgt, die Buttonprogrammierung aber in dem Tabellenblatt des VBA Projektes.

Weis jemand einen Rat oder hat einen Tipp? Bin für jeden Hinweis dankbar.

Gruß Manasse

  

Betrifft: OLEObjects.Add(ClassType:="Forms.Togglebutton.1", von: Matthias L
Geschrieben am: 14.11.2012 17:48:50

Hallo

Probiers mal mit ner neuen Mappe.
Du könntest Du das hier versuchen

Dim StrG As String
StrG = ActiveSheet.OLEObjects.Add(ClassType:="Forms.Togglebutton.1", Left:=0, Top:=0, Width:=200, Height:=40).Name

Breite, Höhe, Top und Left musst Du anpassen.

Zur Zuweisung von Code lies bitte mal in der Hilfe nach. Man könnte .OnAction benutzen.

Gruß Matthias


  

Betrifft: AW: OLEObjects.Add(ClassType:="Forms.Togglebutton.1", von: Manasse
Geschrieben am: 15.11.2012 14:45:18

Danke Matthias, leider komme ich mit dem Befehl .OnAction nicht zurecht, weil die Programmierung des Buttons ja in das Tabellenblatt des Projektes gestellt werden muss.
Die Frage lautet jetzt, wir kann ein Makro, das im Modul programmiert ist, Befehle in die Tabelle des VBA Projekts schreiben.
Hast Du noch eine Idee?????

Gruß
Gundwin

Die Programmierung des ToogleButtons lautet:

Private Sub ToggleButton1_Click()
    If ToggleButton1.Value = False Then
    ToggleButton1.Caption = "MEZ"
    Range("Z1").Select
    ActiveCell.FormulaR1C1 = "MESZ"
    Range("q2:v2").Select
    Else
    ToggleButton1.Caption = "MESZ"
    Range("Z1").Select
    ActiveCell.FormulaR1C1 = "MEZ"
    Range("q2:v2").Select
    End If
End Sub



  

Betrifft: Togglebutton mit VBA erstellen von: Matthias L
Geschrieben am: 15.11.2012 15:34:14

Hallo

Hab den Code mal etwas verjüngt ;-)

https://www.herber.de/bbs/user/82642.xls

Gruß Matthias


  

Betrifft: AW: Togglebutton mit VBA erstellen von: Manasse
Geschrieben am: 15.11.2012 16:15:46

Hi,
super kurze Möglichkeit der Programmierung. Besten Dank für den Tip. Hat nur den Nachteil, dass der Button immer die Beschriftung des Feldes hat, in das er gerade geschrieben hat.
Soll: Wenn in Feld Z1 MEZ steht, soll im Schalter MESZ stehen, damit dies ein Hinweis ist, dass man mit diesem Button umschalten kann.
Die Felder Q2-V2 werden deshalb immer mit markiert, weil nach dem Buttonklick die nächste Aktion ist, die Felder Q2-V2 weiter zu kopieren. Das spart dann einen Arbeitsschritt :-)

Aber wie gesagt, besteht mein Hauptproblem darin, dass ich in das längere Makro neben der Erstellung des Buttons auch dessen Programierung vornehmen möchte. Hast Du da einen Tip was zu machen ist?


  

Betrifft: dann dreh es einfach um ... von: Matthias L
Geschrieben am: 15.11.2012 17:12:05

Hallo

Option Explicit
Private Sub ToggleButton1_Change()
 Range("Z1") = IIf(ToggleButton1, "MESZ", "MES")
 ToggleButton1.Caption = IIf(ToggleButton1, "MEZ", "MESZ")
End Sub
Gruß Matthias


  

Betrifft: Diese Programmierung mit Befehlen? von: Manasse
Geschrieben am: 16.11.2012 12:29:44

Hi Matthias,
vielen Dank für den tollen Tipp. Kannst Du mir noch einmal mit einer diesbezüglichen Programmierung helfen?
Wenn mit dem Button kein Feld gefüllt, sondern ein Makro ausgeführt werden soll, wie müsste dann die Formel aussehen? Der erste Befehl kann dann wohl nicht mehr Range("A1") heißen. Genauer:
Im Button soll beispielsweise "G-aus" stehen. Wenn der Button dann gedrückt wird, soll die Spalte G ausgeblendet werden und ansschließend im Button "G-ein" stehen, damit man weiß, dass bei nächsten Drücken G wieder eingeblendet wird. Dazu existieren dann die entsprechenden Makros mit dem Namen "gein" und "gaus". Also ein ganz schlichtes Beispiel. Mit meiner bisherigen Programmierung würde das so aussehen

Private Sub ToggleButton1_Click()
    If ToggleButton1.Value = False Then
    ToggleButton1.Caption = "G-ein"
    gaus
    Else
    ToggleButton1.Caption = "G-aus"
    gein
    End If
End Sub
Kannst Du mir da noch einmal helfen?

Gruß
Manasse


  

Betrifft: neues Beispiel ... von: Matthias L
Geschrieben am: 16.11.2012 15:34:14

Hallo

https://www.herber.de/bbs/user/82657.xls

Gruß Matthias


 

Beiträge aus den Excel-Beispielen zum Thema "Toggelbutton per Makro erstellen"