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 - Wenn - Dann
#1
Guten Morgen,

ich verzweifele gerade fast an einer simplen Wenn-Dann Formal in VBA.

Folgenden Code habe ich bisher:

 If cmb2.Value = "others" Then
 cmb3.Enabled = True
 End If
 

Aber trotzdem ist meine ComboBox3 immer enabled...?!
Ich verstehe nur nicht warum...

Bitte um Erleuchtung :)

Danke vielmals
Antworten Top
#2
Moin,

welcher Eigenschaft einer ComboBox kann man den Wert "others"  zuweisen?
Es sei denn, cmb2 ist keine ComboBox.

Wenn cmb2 <> ComboBox,
dann empfehle ich,
bleib Deiner Namenskonvention treu.
gruß
Marco
Antworten Top
#3
Hallo S...,

fehlt da der Else-Zweig?

 Else
 cmb3.Enabled = False
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#4
Hallo E...,

danke dafür.
Schreibe selbst ComboBox, meine und lese CheckBox.

@SteBen:
Erweiternd zum Else-Zweig, möchte Ich mich hiermit liebend gern mit folgenden Vorschlag korrigieren:
Code:
Select Case cmb2.Value
 Case Is = "others" 'Hinweis: Gross/Kleinschreibung
  cmb3.enabled = True
 Case Else
  cmb3.enabled = False
End Select
gruß
Marco
Antworten Top
#5
Hallo zusammen,

danke für die Hinweise.

@ Marko, wenn ich Deinen Code übernehme, bekomme ich einen Systaxfehler... Excel hat ein Problem mit Zeile 2 (Case Is "others").

Huh
Antworten Top
#6
Danke fürs Feedback.

Code:
Case Is = "others"

Oben hab ich es eben korrigiert.
gruß
Marco
Antworten Top
#7
Danke. Jetzt ist zwar der Syntaxfehler gelöst, aber meine cmb3 bleibt nach wie vor deaktiviert..


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#8
Poste doch mal den relevanten Code so, wie er in Deiner Mappe steht.
gruß
Marco
Antworten Top
#9
Code:
Private Sub UserForm_Initialize()
 
 'Private Sub chb1_Click()
    chb2 = Not chb1


'Private Sub chb2_Click()
    chb1 = Not chb2
 
 MultiPage1.Value = 0
 
'Listeintrag hinzufügen
 cmb1.AddItem "XXXXXX" 'ListIndex = 0
 cmb1.AddItem "Selbstanlieferung" 'ListIndex = 1
 'Use drop-down list
 cmb1.Style = fmStyleDropDownList
 'Combo box values are ListIndex values
 cmb1.BoundColumn = 0
 'Set combo box to first entry
 cmb1.ListIndex = 0
 
 cmb1.Font.Bold = True
 cmb1.Font.Size = 12
 
...

 'Use drop-down list
 cmb2.Style = fmStyleDropDownList
 'Combo box values are ListIndex values
 cmb2.BoundColumn = 0
 'Set combo box to first entry
 cmb2.ListIndex = 0
 
 cmb2.Font.Bold = True
 cmb2.Font.Size = 12

'PLZ auswählen
cmb3.AddItem "01"
cmb3.AddItem "02"
cmb3.AddItem "03"
cmb3.AddItem "04"
cmb3.AddItem "05"
cmb3.AddItem "06"
cmb3.AddItem "07"
cmb3.AddItem "08"
cmb3.AddItem "09"
cmb3.AddItem "10"
cmb3.AddItem "11"
cmb3.AddItem "12"
cmb3.AddItem "13"
cmb3.AddItem "14"
cmb3.AddItem "15"
cmb3.AddItem "16"
cmb3.AddItem "17"
cmb3.AddItem "18"
cmb3.AddItem "19"
cmb3.AddItem "20"
cmb3.AddItem "21"
cmb3.AddItem "22"
cmb3.AddItem "23"
cmb3.AddItem "24"
cmb3.AddItem "25"
cmb3.AddItem "26"
cmb3.AddItem "27"
cmb3.AddItem "28"
cmb3.AddItem "29"
cmb3.AddItem "30"
cmb3.AddItem "31"
cmb3.AddItem "32"
cmb3.AddItem "33"
cmb3.AddItem "34"
cmb3.AddItem "35"
cmb3.AddItem "36"
cmb3.AddItem "37"
cmb3.AddItem "38"
cmb3.AddItem "39"
cmb3.AddItem "40"
cmb3.AddItem "41"
cmb3.AddItem "42"
cmb3.AddItem "43"
cmb3.AddItem "44"
cmb3.AddItem "45"
cmb3.AddItem "46"
cmb3.AddItem "47"
cmb3.AddItem "48"
cmb3.AddItem "49"
cmb3.AddItem "50"
cmb3.AddItem "51"
cmb3.AddItem "52"
cmb3.AddItem "53"
cmb3.AddItem "54"
cmb3.AddItem "55"
cmb3.AddItem "56"
cmb3.AddItem "57"
cmb3.AddItem "58"
cmb3.AddItem "59"
cmb3.AddItem "60"
cmb3.AddItem "61"
cmb3.AddItem "62"
cmb3.AddItem "63"
cmb3.AddItem "64"
cmb3.AddItem "65"
cmb3.AddItem "66"
cmb3.AddItem "67"
cmb3.AddItem "68"
cmb3.AddItem "69"
cmb3.AddItem "70"
cmb3.AddItem "71"
cmb3.AddItem "72"
cmb3.AddItem "73"
cmb3.AddItem "74"
cmb3.AddItem "75"
cmb3.AddItem "76"
cmb3.AddItem "77"
cmb3.AddItem "78"
cmb3.AddItem "79"
cmb3.AddItem "80"
cmb3.AddItem "81"
cmb3.AddItem "82"
cmb3.AddItem "83"
cmb3.AddItem "84"
cmb3.AddItem "85"
cmb3.AddItem "86"
cmb3.AddItem "87"
cmb3.AddItem "88"
cmb3.AddItem "89"
cmb3.AddItem "90"
cmb3.AddItem "91"
cmb3.AddItem "92"
cmb3.AddItem "93"
cmb3.AddItem "94"
cmb3.AddItem "95"
cmb3.AddItem "96"
cmb3.AddItem "97"
cmb3.AddItem "98"
cmb3.AddItem "99"

 'Use drop-down list
 cmb3.Style = fmStyleDropDownList
 
 'Combo box values are ListIndex values
 cmb3.BoundColumn = 0
 
 'Set combo box to first entry
 cmb3.ListIndex = 0
 cmb3.Font.Bold = True
 cmb3.Font.Size = 12
 
 Select Case cmb2.Value
 Case Is = "others" 'Hinweis: Gross/Kleinschreibung
  cmb3.Enabled = True
 Case Else
  cmb3.Enabled = False
End Select
 
End Sub
Antworten Top
#10
Die Select-Anweisung darf in das Change-Ereignis() der Combobox.
Somit wird der Code durchlaufen, wenn Du an der Combobox "den Wert umstellst".
In dem jetzigen Ereignis wird der Code nur einmal durchlaufen; und zwar beim initialisieren des Formulars.

Schau Dir beide Beschreibungen in der Onlinehilfe an.

Code:
Private Sub cmb3_Change()
    Select Case cmb2.Value
        Case Is = "others" 'Hinweis: Gross/Kleinschreibung
            cmb3.Enabled = True
        Case Else
            cmb3.Enabled = False
    End Select
End Sub

Und das hier:
Code:
'PLZ auswählen
cmb3.AddItem "01"
cmb3.AddItem "02"
cmb3.AddItem "03"
cmb3.AddItem "04"
cmb3.AddItem "05"
cmb3.AddItem "06"
cmb3.AddItem "07"
cmb3.AddItem "08"
cmb3.AddItem "09"
cmb3.AddItem "10"
cmb3.AddItem "11"
cmb3.AddItem "12"
cmb3.AddItem "13"
cmb3.AddItem "14"
...

Kürzen wir wie folgt ab:

Code:
    Dim i As Integer: i = 1
    With cmb3
        For i = 1 To 100 Step 1
            If .ListCount < 9 Then
                .AddItem "0" & i
            Else
                .AddItem i
            End If
        Next i
    End With
gruß
Marco
Antworten Top


Gehe zu:


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