Informationen und Beispiele zum Thema OptionButton | |
---|---|
![]() |
OptionButton-Seite mit Beispielarbeitsmappe aufrufen |
Informationen und Beispiele zum Thema TextBox | |
---|---|
![]() |
TextBox-Seite mit Beispielarbeitsmappe aufrufen |
Betrifft: VBA - Klasse von OptionButton auf Arbeitsblatt?
von: Andreas
Geschrieben am: 14.01.2010 11:58:19
Hallo Excelgemeinde,
ich habe das Problem, dass es mir nicht gelingen will, in einer Schleife mehrere OptionButtons eines Arbeitsblattes zu adressieren.
Von der Sache her gehören Sie zur Klasse Tabelle, aber ansprechen kann ich sie nur einzeln. Die Namen der Buttons enden alle mit einer fortlaufenden Nummer.
Kann mir jemand einen Tipp geben?
Gruß Andreas
Betrifft: AW: VBA - Klasse von OptionButton auf Arbeitsblatt?
von: Rudi Maintaire
Geschrieben am: 14.01.2010 12:02:44
Hallo,
etwa so:
for i=1 to 5
Msgbox sheets(1).Controls("Optionbutton" &i).Value
next
Gruß
Rudi
Betrifft: AW: VBA - Klasse von OptionButton auf Arbeitsblatt?
von: Hajo_Zi
Geschrieben am: 14.01.2010 12:06:35
Hallo Rudi,
gibt es controls in der Tabelle?
Betrifft: AW: VBA - Klasse von OptionButton auf Arbeitsblatt?
von: Andreas
Geschrieben am: 14.01.2010 12:08:53
gibt es controls in der Tabelle?gute Frage
Betrifft: hast Recht owT
von: Rudi Maintaire
Geschrieben am: 14.01.2010 13:03:33
Betrifft: AW: VBA - Klasse von OptionButton auf Arbeitsblatt?
von: Andreas
Geschrieben am: 14.01.2010 12:07:48
Danke, aber eben das funktioniert nicht! ("...unterstützt Eigenschaft/Methode nicht!")
Gruß Andreas
Betrifft: AW: VBA - Klasse von OptionButton auf Arbeitsblatt?
von: Anton
Geschrieben am: 14.01.2010 12:27:41
Hallo Andreas,
so vllt:
Betrifft: AW: VBA - Klasse von OptionButton auf Arbeitsblatt?
von: Andreas
Geschrieben am: 14.01.2010 12:54:18
Sub b() 'OptionButtons aus der Steuerelement-Toolbox Dim olob As OLEObject For Each olob In Tabelle1.OLEObjects 'Tabelle1 anpassen If InStr(1, olob.Name, "OptionButton") <> 0 Then Debug.Print olob.Name & vbTab & olob.Object.Value End If Next End Sub
Betrifft: bei mir geht es
von: Anton
Geschrieben am: 14.01.2010 13:18:56
Hallo Andreas,
Betrifft: AW: bei mir geht es
von: Andreas
Geschrieben am: 14.01.2010 13:41:42
...hm, dan liegt es wahrscheinlich an meiner Art der Referenzierung.
Ich möchte ein Feld füllen, welches mit einer eigenen Klasse deklariert wird. In der Klasse vereinbare ich dann (zusätzliche) Methoden und Ereignisse für die Optionsknöpfe.
Was habe ich:
1. eine Klasse ClsFarbOption mit einem Objekt "Item"
Public WithEvents Item As OLEObject /vorher stand hier MSForms.OptionButton
Private Sub Item_Click() Set Planer.AktOpBu = Item End Sub2. ein Modul Planer
Public Sub FarbOptionenInstanzieren() Dim b As Byte For b = 1 To 13 Set Farboptionen(b) = New ClsFarbOption Set Farboptionen(b).Item = Tabelle1.OLEObjects("OpBu_Wahl_" & b) Next b End Sub3. Code der Arbeitsmappe
Private Sub Workbook_Open() Dim b As Byte Set Planer.BlattPlaner = ThisWorkbook.Worksheets("Resourcen Termine") Planer.FarbOptionenInstanzieren ... End SubBei FarboptionenInstanzieren 'knallt' es.
Betrifft: leider nicht
von: Anton
Geschrieben am: 14.01.2010 13:49:02
Hallo Andreas,
mit Klassenprogrammierung kenne ich mich nicht aus.
mfg Anton
Betrifft: AW: leider nicht
von: Hajo_Zi
Geschrieben am: 14.01.2010 13:56:24
Hallo Andreas,
woher hast Du die Erkemmtnis das Klasse in Tabelle geht?
Für UserForm kenne ich LÖsungen, aber in Tabellen habe ich das noch nicht gesehen.
Gruß Hajo
Betrifft: AW: leider nicht
von: Andreas
Geschrieben am: 14.01.2010 14:17:42
woher hast Du die Erkemmtnis das Klasse in Tabelle geht? Für UserForm kenne ich LÖsungen, aber in Tabellen habe ich das noch nicht gesehen.Meinem Verständnis nach sind Tabellen doch auch nur Klassen und gehören zur Klasse Workbook - siehe Objektkatalog. Also ist halt die Frage, welche Klasse enthält die Optionsknöpfe und wie kann ich sie ansprechen...dacht ich so
Betrifft: AW: leider nicht
von: Andreas
Geschrieben am: 14.01.2010 14:49:56
...in der Form, wie ich es dachte, geht es wirklich nicht.
Gruß Andreas
Betrifft: AW: bei mir geht es
von: Nepumuk
Geschrieben am: 14.01.2010 22:12:06
Hallo,
die Schnittstelle zum OLEObject-Objekt bietet nur GotFocus und LostFocus als Event an. Wenn du ein Click-Event benötigst musst du schon die OptionButton-Klasse benutzen.
So geht's natürlich nicht: Set Farboptionen(b).Item = Tabelle1.OLEObjects("OpBu_Wahl_" & b)
Da musst du schon die Object-Eigenschaft des OLEObject benutzen, die gibt das Automatisierungsobjekt zurück:
Set Farboptionen(b).Item = Tabelle1.OLEObjects("OpBu_Wahl_" & b).Object
Warum um alles in der Welt liest kein Schwein die Hilfe? Da steht alles drin.
Gruß
Nepumuk