Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

ActiveX Elemente mit Bedingung ausblenden
#1
Question 
Moin zusammen,

ich bin gerade dabei mich in VBA einzuarbeiten, da ich ActiveX Schaltelemente benutzen möchte um die Ausgaben dann entsprechend weiter für Wenn Funktionen zu nutzen.

Genauer habe ich eine Checkbox und eine Scrollbar. Wenn die Checkbox angeklickt ist (True), dann soll die Scrollbar ausgeblendet werden und andersrum.

Ich habe dafür auch schon ein bisschen Code geschrieben, aber der will soweit nicht funktionieren. Besser wäre es jedoch auch, wenn man über "Range" den Wert der jeweiligen Zelle ausliest, da es dann für mich einfacher wäre mit Wenn Funktionen zu arbeiten. Irgendwie wollte das aber auch nicht funktionieren.

Ich hoffe ihr könnt mir helfen.


Code:
Private Sub ScrollBarB_Change()

If

ActiveSheet.Shapes("Checkbox1").Value = True Then
ActiveSheet.Shapes("ScrollbarB").Visible = True

Else

ActiveSheet.Shapes("ScrollBarB").Visible = False

End If

End Sub
Antworten Top
#2
Moin!
ActiveX sind keine Shapes:
Es reicht folgender Code:
Code:
Private Sub CheckBox1_Click()
ScrollBar1.Visible = CheckBox1
End Sub

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • fredrre
Antworten Top
#3
@RPP

ActiveX-controls:
Code:
Sub M_snb()
    MsgBox Sheet1.OLEObjects("Textbox1").Name
    MsgBox Sheet1.Shapes("Textbox1").Name
    MsgBox Sheet1.TextBox1.Name
End Sub

Formcontrols
Code:
Sub M_snb()
    MsgBox Sheet1.Labels(1).Name
    MsgBox Sheet1.Shapes("Label 2").Name
End Sub

Code:
sub M_snb()
  Msgbox sheet1.shape.count
end sub
Ergo: 'ActiveX sind keine Shapes'<> Wahr

Teste mal:

Code:
Sub M_snb()
    MsgBox Sheet1.Shapes(1).Type ' 12 = msoOLEControlObject = ActiveX-controle
    MsgBox Sheet1.Shapes(2).Type '  8  = msoFormControl        = Formularcontrol
    If Sheet1.Shapes(2).Type = 8 Then MsgBox Sheet1.Shapes(2).FormControlType
End Sub
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • fredrre
Antworten Top
#4
snb schrieb:Ergo: 'ActiveX sind keine Shapes'<> Wahr
Gebe mich geschlagen! :19:
Allerdings:
Warum sollte man mutwillig auf die Intellisense im VBE verzichten?

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • fredrre
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste