Microsoft Excel

Herbers Excel/VBA-Archiv

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

VBA - Klasse von OptionButton auf Arbeitsblatt? | Herbers Excel-Forum


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?

GrußformelHomepage


  

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:

Code:

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  




mfg Anton


  

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 

Ja, funktioniert, aber warum geht das nicht:

Tabelle1.OLEObjects("OptionButton" & i)

in einer Schleife mit dem Zähler i ?

Gruß Andreas


  

Betrifft: bei mir geht es von: Anton
Geschrieben am: 14.01.2010 13:18:56

Hallo Andreas,

Code:

Sub n()
  For i = 1 To 2  
    Debug.Print Tabelle1.OLEObjects("OptionButton" & i).Object.Value  
  Next
End Sub  



mfg Anton


  

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 Sub
2. ein Modul Planer

Public Farboptionen(1 To 13) As ClsFarbOption
Public AktOpBu As Object
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 Sub
3. Code der Arbeitsmappe
Private Sub Workbook_Open()
Dim b As Byte
   
   Set Planer.BlattPlaner = ThisWorkbook.Worksheets("Resourcen Termine")
   Planer.FarbOptionenInstanzieren
   ...
End Sub
Bei FarboptionenInstanzieren 'knallt' es.

Kannst du was damit anfangen?

Gruß Andreas


  

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

Gruß Andreas


  

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


Beiträge aus den Excel-Beispielen zum Thema "VBA - Klasse von OptionButton auf Arbeitsblatt?"