Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1284to1288
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
Toggelbutton per Makro erstellen
14.11.2012 17:10:46
Manasse
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

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
OLEObjects.Add(ClassType:="Forms.Togglebutton.1",
14.11.2012 17:48:50
Matthias
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

AW: OLEObjects.Add(ClassType:="Forms.Togglebutton.1",
15.11.2012 14:45:18
Manasse
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

Anzeige
AW: Togglebutton mit VBA erstellen
15.11.2012 16:15:46
Manasse
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?

Anzeige
dann dreh es einfach um ...
15.11.2012 17:12:05
Matthias
Hallo
Option Explicit
Private Sub ToggleButton1_Change()
Range("Z1") = IIf(ToggleButton1, "MESZ", "MES")
ToggleButton1.Caption = IIf(ToggleButton1, "MEZ", "MESZ")
End Sub
Gruß Matthias

Diese Programmierung mit Befehlen?
16.11.2012 12:29:44
Manasse
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

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige