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)
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
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
Top
#4
Vielen Dank! Hilft bisher ganz gut :)
Top


Gehe zu:


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