Tabellenobjekte

 

Home
Nach oben

Last Update 20.07.2004

Copyright  2003
Ramses (C)

 

Das Problem ist ja immer wieder, dass die Textboxen, Checkboxen Listenfelder in den Userforms meistens problemlos angesprochen ( synonym für "verändert" ) werden können, um ihnen Werte oder andere Eigenschaften zu geben.

Auf einer Tabelle ist das allerdings ein klein wenig anders :-)

Deshalb hier noch einige Beispiele

Text in Textboxen ( Symbolleiste Zeichnen ) ändern

Buttonbeschriftung /-farbe ändern

 

Formeln an Textboxen ( Symbolleiste Zeichnen ) zuweisen

OptionButton zusammenfassen und gruppieren

 

Textboxen ein und ausblenden

 

 

 

 

 
Vergleich
   

Checkbox Symbolleiste Toolbox ansprechen

Optionbutton Symbolleiste Toolbox ansprechen

 

Checkbox Symbolleiste Formular ansprechen

Optionbutton Symbolleiste Formular ansprechen

 

Allgemeine Infos

Grundsätzlich sind die Objekte aus der Symbolleiste Zeichnen und Steuerelement Toolbox nicht identisch und müssen auf unterschiedliche Weise angesprochen werden.

Die beste Möglichkeit herauszufinden welche Methoden auf Objecte angewendet werden können, ist diese Variante

Zeichnen Sie eine Textbox aus der Symbolleiste "Zeichnen" auf eine leeres Tabellenblatt in einer neuen leeren Mappe.
Fügen Sie dieses Makro in ein Modul, setzen Sie bei "With myS" einen Haltepunkt und blenden Sie anschliessend über "Ansicht-Lokal Fenster" die lokale Überwachung ein.
Starten Sie das Makro

 
Sub Find_Shape_Methods()
Dim myS As Shape
Set myS = ActiveSheet.Shapes("Text Box 1")
With myS
    .TextFrame.Characters.Text = "Muster"
End With
End Sub 

Im Lokal Fenster können Sie nun alle Methoden ansehen, welche Sie auf das jeweilige Objekt anwenden können. Sie erhalten hier wesentlich mehr Informationen als über den Objekt-Katalog (aufzurufen über F2 im VB-Editor)


(Die Idee hierzu stammt von Nepumuk aus dem Herber-Forum, der Code von mir :-) )

Zurück


 

Text in Textboxen ( Symbolleiste Zeichnen ) ändern

Sub Textbox_Neuen_Text_zuweisen()
'"Text Box 1" ist die englische Bezeichnung
'Im Namensfeld der Tabelle steht "Textfeld1"
With ActiveSheet.Shapes("Text Box 1")
    .TextFrame.Characters.Text = "Neuer Text"
End With
End Sub 
 

Zurück


 

Formeln an Textboxen ( Symbolleiste Zeichnen ) zuweisen

Sub Textbox_Neuen_Text_zuweisen()
'"Text Box 1" ist die englische Bezeichnung
'Im Namensfeld der Tabelle steht "Textfeld1"
With ActiveSheet.Shapes("Text Box 1")
    .OLEFormat.Object.Formula = "A1"
End With
End Sub 

Die in der Textbox wird nun auf den Inhalt der Zelle A1 verwiesen.
Der Inhalt der Textbox ändert sich nun dynamisch mit dem Inhalt
der Zelle A1

Zurück


 

Textboxen ein und ausblenden

Sub Show_Textbox()
ActiveSheet.Shapes("Text Box 1").visible = true 'false
End Sub
 
   

Zurück


 

Buttonbeschriftung ändern

Mit diesem Code können Sie auf Benutzereingaben reagieren und via die Beschriftung und Farbe den Benutzer über einen bestimmten Zustand in der Tabelle informieren 
 
 
Private Sub btnStart_Click()
'Name des Buttons ist "btnStart"
With ActiveSheet
    If .OLEObjects("btnStart").Object.Caption = "Aus" Then
        .OLEObjects("btnStart").Object.Caption = "Ein"
        .OLEObjects("btnStart").Object.BackColor = &H80FF80
    Else
        .OLEObjects("btnStart").Object.Caption = "Aus"
        .OLEObjects("btnStart").Object.BackColor = &HFFFF&
        .OLEObjects("btnStart").Enabled = False
    End If
End With
End Sub 

 

Zurück


 

Optionbutton zu Gruppen zusammenfassen

Wenn Sie sehr viele Optionbuttons auf einer Tabelle gruppiert haben,.,... aber nicht zu einer Gruppe zusammengefasst haben :-), dann hilft Ihnen dieses Makro.

Auf einfache Weise fasst es alle benötigten Optionbutton zusammen und bennennt diese zu einer Gruppe.
Die Anzahl OptionButton pro Gruppe ist frei definierbar.


Sub OptionButton_Group()
'spricht alle OptionButton in der Tabelle 1
'und gruppiert diese in Gruppen von je x
'Es dürfen nur OptionButton Objecte in der Tabelle sein

On Error Resume Next
Dim i As Integer, n As Integer,
Dim myGroup As Integer, grpCounter As Integer, myCounter As Integer
grpCounter = 1
myCounter = 0
myGroup = Inputbox("Wieviele Optionbutton sollen in je eine Gruppe ?","Gruppierung",3)
If Group = "" Then Exit Sub
With Sheets("Tabelle1")
    For i = 1 To .OLEObjects.Count Step myGroup
        For n = 1 To myGroup
            .OLEObjects(i + myCounter).Object.GroupName = "Group" & grpCounter
            myCounter = myCounter + 1
        Next n
        myCounter = 0
        grpCounter = grpCounter + 1
    Next i
End With
End Sub   
 

Zurück


 

Checkboxes aus den unterschiedlichen Symbolleisten ansprechen

 
Symbolleiste "Formular"

 
Sub Activate_CheckBox_Drawing()
Dim myS As Shape
'*Check Box 1" ist der englische Name für "Kontrollkästchen1"
'das in EXCEL im Namensfeld angezeigt wird

Set myS = ActiveSheet.Shapes("Check Box 1")
With myS
    .OLEFormat.Object.Value = True
End With
End Sub 

 

 

   

Symbolleiste "Toolbox"

ActiveSheet.CheckBox1.Value = true

Der Name des Objektes lautet "Checkbox1"

 

 
Symbolleiste "Formular"

 
Sub Activate_Optionbutton_Drawing()
Dim myS As Shape
'*Option Button 1" ist der englische Name für "Optionbutton1"
'das in EXCEL im Namensfeld angezeigt wird

Set myS = ActiveSheet.Shapes("Option Button 1")
With myS
    .OLEFormat.Object.Value = True
End With
End Sub 

 

 

   

Symbolleiste "Toolbox"

ActiveSheet.Optionbutton1.Value = true

Der Name des Objektes lautet "OptionButton1"

 

Zurück