Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1676to1680
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

OptionButton per VBA Code/Funtion zuweisen

OptionButton per VBA Code/Funtion zuweisen
19.02.2019 07:25:48
Marieke
Hallo zusammen,
ich möchte eine Checkliste erstellen. Zum erstellen eines Neuen Eintrags habe ich ein Makro geschrieben, das auch für jeden Eintrag die OptionButtons "Ja" und "Nein" erstellt. Nun sollen gewisse Unterpunkte ausgeblendet werden, wenn bei einem Eintrag "Nein" angeklickt wird. Das habe ich für den ersten Eintrag über das "Click"-Ereignis gemacht. Allerdings werden die weiteren Einträge ja alle durch ein Makro erstellet und enthalten somit noch keinen Code... Nun meine Frage:
Gibt es eine Möglichkeit einen OptionButton per VBA zu erstellen und diesem auch per VBA einen Code oder zumidest eine Fuktion (sie sollen ja im Prinzip immer das gleiche tun) zuzuweisen?
Ich hoffe ihr könnt mir helfen.
Liebe Grüße Marieke

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

Betreff
Datum
Anwender
Anzeige
Was ist ein CodeModule?/Lösungsansatz
19.02.2019 11:28:37
Marieke
Moin nochmal,
ich hab nochmal weiter probiert aber bekomme es einfach nicht hin.
Hier mein vereinfachter Code und ein Lösungsansatz:
Sub OBerstellen()
Dim s As Integer
Dim OB As Object
Dim lngStartLine As Long
Run "zeilenzaehlen"          'gibt mir lastrow
With Range("K" & lastrow)
For s = 1 To 2
With .Offset(1, s - 1)
Set OB = ActiveSheet.OLEObjects.Add( _
ClassType:="Forms.OptionButton.1", _
Link:=False, _
DisplayAsIcon:=False, _
Left:=.Left, _
Top:=.Top, _
Width:=.Width, _
Height:=.Height)
OB.Object.GroupName = "Gruppe" & lastrow
OB.LinkedCell = .Address(0, 0)
If s = 1 Then
OB.Object.Caption = "Ja"
.Value = True
With CodeModule                                         'was muss hier...
lngStartLine = .CreateEventProc("Click", OB.Object.Name) + 1
.InsertLines lngStartLine, _
" msgbox ""Ja"""
End With
Else
OB.Object.Caption = "Nein"
.Value = False
With CodeModule                                          '... und hier hin?
lngStartLine = .CreateEventProc("Click", OB.Object.Name) + 1
.InsertLines lngStartLine, _
" msgbox ""Nein"""
End With
End If
End With
Next s
End With
End Sub
Mein Problem ist glaube ich, dass ich nicht verstehe, was ein CodeModule ist/macht bzw. wie man es erstellt oder wie auch immer man es benutzt. Ich werde aus der Definition von Microsoft einfach nicht schlau...
LG Marieke
Anzeige
Was ist ein CodeModule?/Lösungsansatz
19.02.2019 11:42:36
Marieke
Moin nochmal,
ich hab nochmal weiter probiert aber bekomme es einfach nicht hin.
Hier mein vereinfachter Code und ein Lösungsansatz:
Sub OBerstellen()
Dim s As Integer
Dim OB As Object
Dim lngStartLine As Long
Run "zeilenzaehlen"          'gibt mir lastrow
With Range("K" & lastrow)
For s = 1 To 2
With .Offset(1, s - 1)
Set OB = ActiveSheet.OLEObjects.Add( _
ClassType:="Forms.OptionButton.1", _
Link:=False, _
DisplayAsIcon:=False, _
Left:=.Left, _
Top:=.Top, _
Width:=.Width, _
Height:=.Height)
OB.Object.GroupName = "Gruppe" & lastrow
OB.LinkedCell = .Address(0, 0)
If s = 1 Then
OB.Object.Caption = "Ja"
.Value = True
With CodeModule                                         'was muss hier...
lngStartLine = .CreateEventProc("Click", OB.Object.Name) + 1
.InsertLines lngStartLine, _
" msgbox ""Ja"""
End With
Else
OB.Object.Caption = "Nein"
.Value = False
With CodeModule                                          '... und hier hin?
lngStartLine = .CreateEventProc("Click", OB.Object.Name) + 1
.InsertLines lngStartLine, _
" msgbox ""Nein"""
End With
End If
End With
Next s
End With
End Sub
Mein Problem ist glaube ich, dass ich nicht verstehe, was ein CodeModule ist/macht bzw. wie man es erstellt oder wie auch immer man es benutzt. Ich werde aus der Definition von Microsoft einfach nicht schlau...
LG Marieke
Anzeige
AW: OptionButton per VBA Code/Funtion zuweisen
19.02.2019 11:53:42
Daniel
Hi
wenn ich mal davon ausgehe, dass die Optionbuttons bestimmten Zeilen zugeordnet sind, ist es einfacher, anstelle von Optionbuttons über das BeforeDoubleClick-Event bestimmte Zellen als Optionbutton zu verwenden.
dh du legst für das Blatt das BeforeDoubleClick-Eventmakro an.
dieses wird immer ausgelöst, wenn du einen Doppelklick auf eine Zelle ausführst.
über die Variable Target kannst du dann ermitteln, welche Zelle angeklickt wurde und darüber dann die entsprechenden Aktionen ausführen lassen.
dann reicht dir ein Makro aus und du musst dich nicht damit rumärgern, Code per Code erzeugen zu müssen, sondern kannst alles direkt programmieren.
Gruß Daniel
Anzeige
AW: OptionButton per VBA Code/Funtion zuweisen
19.02.2019 12:01:39
Marieke
Klingt nach einer guten Alternative. Ich probiere das mal aus und melde mich nochmal, falls ich Fragen hab.
Vielen Dank für den Tipp! :)
AW: OptionButton per VBA Code/Funtion zuweisen
19.02.2019 12:01:40
Marieke
Klingt nach einer guten Alternative. Ich probiere das mal aus und melde mich nochmal, falls ich Fragen hab.
Vielen Dank für den Tipp! :)
AW: OptionButton per VBA Code/Funtion zuweisen
19.02.2019 14:34:10
Marieke
Folgendes Problem:
Wenn ich einen Doppelklick auf einen OptionButton mache, erkennt er die Zelle dahinter nicht, obwohl sie mit dem Button verlinkt ist.
Kannst du mir da weiter helfen?
LG Marieke
AW: OptionButton per VBA Code/Funtion zuweisen
19.02.2019 16:14:41
Daniel
kein Optionbutton.
die Zelle selbst ist der Optionbutton.
AW: OptionButton per VBA Code/Funtion zuweisen
21.02.2019 12:25:36
Marieke
Ah ok jetzt hab ich verstanden, was du meinst. Es funktioniert super. Vielen Dank!
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige