VBA - Inhalt aus Combobox löscht sich nicht
#1
Halllo Zusammen,

habe mal wieder ein Problem... :05:
Aber bin schon am Endspurt Wink


Hier zunächst mal mein Code:

Code:
Private Sub cbo_th_sondermas_DropButtonClick()
   Select Case -Unico & -Syntesis & -Trockenbau & -Massivwand & -ob_1985 & -ob_2110 & -ob_2235 & -ob_th_sondermas & cbo_sonderelement
   
       Case Is = "10100001" & ""
           cbo_th_sondermas.List = Array("510 - 2610")
       Case Is = "10010001" & ""
           cbo_th_sondermas.List = Array("510 - 2610", "2611 - 2910")
       Case Is = "10100001" & "Luce"
           cbo_th_sondermas.List = Array("1010 - 2610")
       Case Is = "10010001" & "Luce"
           cbo_th_sondermas.List = Array("1010 - 2610")
       Case Is = "01100001" & "Luce"
           cbo_th_sondermas.List = Array("992 - 2692")
       Case Is = "01010001" & "Luce"
           cbo_th_sondermas.List = Array("992 - 2692")
       Case Is = "10100001" & "Unilaterale"
           cbo_th_sondermas.List = Array("1010 - 2610")
       Case Is = "10010001" & "Unilaterale"
           cbo_th_sondermas.List = Array("1010 - 2610")
       Case Is = "01100001" & ""
           cbo_th_sondermas.List = Array("992 - 2692")
       Case Is = "01010001" & ""
           cbo_th_sondermas.List = Array("992 - 2692")
       Case Else
           cbo_th_sondermas.Clear
           
           
   End Select

   
End Sub


Folgendes Szenarion:

ob_1985, ob_2110, ob_2235 und ob_th_sondermas sind Optionsfelder
cbo_th_sondermas ist eine ComboBox.

Wenn ich auf ob_th_sondermas in meiner userform klicke, soll die Liste welche unter Array steht angezeigt werden, das funktioniert auch einwandfrei.
Wenn ich jetzt aber z.b. auf das Optionsfeld ob_2110 klicke, sollte sich der Inhalt aus der Combobox cbo_th_sondermas automatisch löschen.
Das wollte ich mit der Case Else Funktion cbo_th_sondermas.Clear regeln.

Nur bleibt leider der Inhalt in der ComboBox stehen auch wenn ich schon ein ganz anderes Optionsfeld angeklickt habe.

Hatte vergessen zu erwähnen...
Nachdem ich z.b. das Optionsfeld ob_1985 geklickt habe, bleibt der Inhalt in der Combobox weiter stehen.
Aber sobald ich dann nochmals auf die Combobox klicke, kann ich nichts mehr auswählen, wie es auch richtig ist und der Inhalt is verschwunden.
Nur ich will eben, dass der Inhalt der Combobox sich zeitgleich mit dem Klick auf das Optionsfeld löscht.

Vielleicht habt ihr für mich eine Lösung, wie sich der Inhalt aus meiner Combobox löscht.

Vielen Dank im Voraus Smile
Top
#2
Hallöchen,

Nimm mal auch den Value der Combo mit = "" weg.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • ECWetzi
Top
#3
Hallo Andre,

wie du nach unserer gemeinsamen Zeit sicher schon bemerkt hast, bin ich etwas schwer von Begriff :D

Meinst du etwas so:

Case Else

           cbo_th_sondermas.Clear
           cbo_th_sondermas.value=““

End Select
...

?

Vielen Dank nochmals.
Top
#4
Hallo,

sicherer ist es, das Leeren der ComboBox unabhängig von der Select-Case-Abfrage an den Anfang zu stellen:

Private Sub cbo_th_sondermas_DropButtonClick()
  cbo_th_sondermas.Clear
  cbo_th_sondermas.Value = ""
  Select Case -Unico & -Syntesis & -Trockenbau & -Massivwand & -ob_1985 & -ob_2110 & -ob_2235 & -ob_th_sondermas & cbo_sonderelement
      Case Is = "10100001" & ""
          cbo_th_sondermas.List = Array("510 - 2610")
      Case Is = "10010001" & ""
          cbo_th_sondermas.List = Array("510 - 2610", "2611 - 2910")
      Case Is = "10100001" & "Luce"
          cbo_th_sondermas.List = Array("1010 - 2610")
      Case Is = "10010001" & "Luce"
          cbo_th_sondermas.List = Array("1010 - 2610")
      Case Is = "01100001" & "Luce"
          cbo_th_sondermas.List = Array("992 - 2692")
      Case Is = "01010001" & "Luce"
          cbo_th_sondermas.List = Array("992 - 2692")
      Case Is = "10100001" & "Unilaterale"
          cbo_th_sondermas.List = Array("1010 - 2610")
      Case Is = "10010001" & "Unilaterale"
          cbo_th_sondermas.List = Array("1010 - 2610")
      Case Is = "01100001" & ""
          cbo_th_sondermas.List = Array("992 - 2692")
      Case Is = "01010001" & ""
          cbo_th_sondermas.List = Array("992 - 2692")
  End Select
End Sub

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • ECWetzi
Top
#5
Guten Morgen Andre,
Guten Morgen Uwe,

@Andre
Deine Variante habe ich versucht, wie in meiner vorherigen Antwort beschrieben, jedoch bleibt es bei meinem Problem
Der Inhalt bleibt in meiner ComboBox stehen, obwohl ich ein anderes Optionsfeld ausgewählt habe.

@Uwe
Deine Variante habe ich ebenfalls versucht, jedoch habe ich hier folgendes Problem:
Wenn ich -ob_th_sondermas anklicke und danach die ComboBox öffne, steht darin zwar der Inhalt aber er lässt sich nicht auswählen, die ComboBox bleibt leer.

Vielleicht habt ihr noch andere Vorschläge. Smile

Beste Grüße,
Daniel
Top
#6
Hallöchen,

zum Verständnis der Funktion kannst Du mal in einer neuen Datei ein neues Userform mit einem OptionButton und einer Combobox erzeugen. Dann nimmst Du folgenden Code rein:

Code:
Private Sub ComboBox1_Change()
MsgBox 1
End Sub

Private Sub OptionButton1_Click()
Me.ComboBox1.Clear
Me.ComboBox1.Value = ""
End Sub

Private Sub UserForm_Initialize()
Me.ComboBox1.AddItem "A"
Me.ComboBox1.AddItem "B"
Me.ComboBox1.AddItem "C"
End Sub

startest das Userform, wählst etwas in der Combo aus und drückst den Optionbutton.

In Deinem Code ist mir noch aufgefallen, das eventuell ein Underline fehlt. Das wäre, wenn es der Click-Code und kein zusätzliches Makro ist.
Nicht
Private Sub cbo_th_sondermas_DropButtonClick()
sondern
Private Sub cbo_th_sondermas_DropButton_Click()
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • ECWetzi
Top
#7
Hallo Andre

vielen lieben Dank, genauso wie du es gezeigt hast funktioniert es hervorragend!
Genauso simple wie genial :)

Vielen Dank.

Beste Grüße
Daniel
Top
#8
Ohne überflüssigkeiten:

Private Sub cbo_th_sondermas_DropButton_Change()
  Select Case -Unico & -Syntesis & -Trockenbau & -Massivwand & -ob_1985 & -ob_2110 & -ob_2235 & -ob_th_sondermas & cbo_sonderelement
  Case  "10100001"
    cbo_th_sondermas.List = Array("510 - 2610")
  Case  "10010001" & ""
    cbo_th_sondermas.List = Array("510 - 2610", "2611 - 2910")
  Case  "10100001" & "Luce","10010001" & "Luce","10100001" & "Unilaterale","10010001" & "Unilaterale"
    cbo_th_sondermas.List = Array("1010 - 2610")
  Case  "01100001" & "Luce","01010001" & "Luce", "01100001" ,"01010001"
    cbo_th_sondermas.List = Array("992 - 2692")
  case else
    cbo_th_sondermas.clear
  End Select
End Sub

Ich würde nie das Event 'button_click' verwenden.
Studiere (nicht kopiere) Select case ... End Select bevor sie zu verwenden.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top


Gehe zu:


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