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.

VBA-Problem: Wie blende ich das Drehfeld aus?
#1
Hallo zusammen.
Ich bin leider niemand mit guten VBA-Kenntnissen, möchte aber eine Kalkulation mit Bedienelementen basteln.

In dem Beispiel soll ein Wert "Da soll SpinB. Gezeigt werden" in einem Kombinationsfeld gezeigt werden und dementsprechend das Drehfeld eingeblendet werden. Entgegengesetzt sollte eben bei den Werten "Da nicht" und "Und da auch nicht" im Kombinationsfeld, das Drehfeld ausgeblendet sein.

Anders gesagt: die Ausgabe des Kombinationfeldes ist auf B7. Das Drehfeld soll erst gezeigt werden wenn B7 = A2 entspricht.
Problem: das Drehfeld wird er bei jeweiligem Ereignis im Kombinationsfeld ein/aus-geblendet wenn ich danach eben nochmal auf die Zelle B7 oder A2 klicke. Genau das möchte ich nicht. Es soll eben sofort nach Auswahl im Kombinationsfeld reagieren.

Ich den Tip bekommen folgenden Code einzusetzen (wie gesagt, ich bin VBA-Doofi):

PHP-Code:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If 
Target.Address "$A$2" Or Target.Address "$B$7" Then
        SpinButton2
.Visible Range("A2") = Range("B7")
    
End If
End Sub 

Vielleicht kann mir jemand weiterhelfen? Screenshot und Tabelle sind angehängt.


Angehängte Dateien Thumbnail(s)
   

.xls   ausblenden_spin_button_problem2.xls (Größe: 30,5 KB / Downloads: 8)
Antworten Top
#2
Hallo,

nutze statt SelectionChange Ereignis das ComboxChange Ereignis.

So ganz banal umgesetzt:

Code:
Private Sub ComboBox1_Change()
   If Me.ComboBox1.ListIndex = 0 Then
      Me.SpinButton2.Visible = True
   Else
      Me.SpinButton2.Visible = False
   End If
End Sub

oder auch so:
Code:
Private Sub ComboBox1_Change()
   Me.SpinButton2.Visible = Me.ComboBox1.ListIndex * -1 = 0
End Sub

In beiden Fällen gehe ich davon aus, dass nur bei der an erste Stelle stehenden Listeneintrags der Combo eingeblendet werden muss.
Gruß Atilla
Antworten Top
#3
Auch hallo,

mit Select Case kann man sehr flexibel verzweigen.
Die Ausgabezelle wird nicht benötigt.

Code:
Option Explicit

Private Sub ComboBox1_Change()
  ActiveCell.Activate
  Select Case Trim(ComboBox1.Value)
    Case "Da soll SpinB. Gezeigt werden"
      Me.SpinButton2.Visible = True
    Case "Da nicht", "Und da auch nicht"
      Me.SpinButton2.Visible = False
  End Select
End Sub

Private Sub SpinButton2_SpinDown()
  Range("F2").Value = Range("F2").Value - 0.0001
End Sub

Private Sub SpinButton2_SpinUp()
  Range("F2").Value = Range("F2").Value + 0.0001
End Sub

Gruß Uwe
Antworten Top
#4
Vielen Dank! Hilft bisher ganz gut :)
Antworten Top


Gehe zu:


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