Hallo,
ich versuche momentan ein Formblatt zu erstellen und mich dabei in VBA einzuarbeiten. Den bisherigen Code habe ich unten angefügt. Derzeit stoße ich auf zwei Probleme:
1. Aus irgendeinem Grund zeigen die Comboboxen ihren Inhalt nicht mehr an, wenn ich die Datei öffne aufrufe. Ich muss jetzt jedes Mal erst VBA aufrufen und dort den Play-Button betätigen. Gibt es eine Möglichkeit, dass die Boxen von Anfang an gefüllt und aktiviert sind?
2. Ich versuche einen Wert (SW, letzter Code Teil) festzulegen, der in Abhängigkeit vom Inhalt eines Feldes oder einer von zwei Comboboxen definiert ist. Die Definition der Werte habe ich über eine multiple Wenn-Abfrage bereits erstellt. Allerdings weiß ich noch nicht wie ich es erreiche, dass das Ergebnis auch mit jeder Änderung neu bestimmt wird. Bis jetzt wird mit jedem Aktivieren des Codes (Play-Button) das zur aktuellen Situation gehörende Ergebnis dargestellt, bei Ändern der Comboboxen Einträge aber nicht aktualisiert.
Ich hoffe ihr könnt mir weiterhelfen.
Option Explicit
Private Sub Vk_Initialize()
With Vk
.Clear 'vermeidet Mehrfacheinträge
.AddItem "Im"
.AddItem "Ch"
.AddItem "El"
.AddItem "Or"
.AddItem "Ty"
End With
Vk.Width = 72
End Sub
Private Sub Vk_Change()
If Vk.Value = "Im" Then 'Typauswahl Im
Cells(5, 12) = ""
TypIm.Visible = True
TypIm.Enabled = True
TypCh.Visible = False
Else
If Vk.Value = "Ch" Then 'Typauswahl Ch
Cells(5, 12) = ""
TypIm.Visible = False
TypCh.Enabled = True
TypCh.Visible = True
Else
If Vk.Value = "El" Then 'Typauswahl El
Cells(5, 12) = "El"
TypIm.Visible = False
TypCh.Visible = False
Else
If Vk.Value = "Or" Then 'Typauswahl Or
Cells(5, 12) = "Or"
TypIm.Visible = False
TypCh.Visible = False
Else
Cells(5, 12) = "Ty" 'Typauswahl Ty automatisch, wenn nicht anderes gewählt
TypIm.Visible = False
TypCh.Visible = False
End If
End If
End If
End If
End Sub
Private Sub TypIm_Initialize()
With Me.TypIm
.Clear 'vermeidet Mehrfacheinträge
.AddItem "SM"
.AddItem "IA"
.AddItem "TL"
.AddItem "SM, IA"
.AddItem "SM, TL"
.AddItem "SM, IA, TL"
End With
TypIm.Width = 234
End Sub
'Festlegung Typen des Ch
Private Sub TypCh_Initialize()
With Me.TypCh
.Clear 'vermeidet Mehrfacheinträge
.AddItem "CSM"
.AddItem "KU"
.AddItem "DÄ"
.AddItem "CSM, KU"
.AddItem "CSM, DÄ"
.AddItem "CSM, KU, DÄ"
End With
TypCh.Width = 234
End Sub
Private Sub SW_Change()
Range(Cells(3, 27), Cells(4, 28)).ClearContents
If TypIm.Value = "SM" Or TypCh.Value = "CSM" Or Cells(5, 12) = "El" Then
Cells(3, 27) = 5
Else
If TypIm.Value = "SM, IA" Or TypIm.Value = "SM, TL" Or TypIm.Value = "SM, IA, TL" Then
Cells(3, 27) = 4
Else
If TypCh.Value = "CSM, KU" Or TypCh.Value = "CSM, DÄ" Or TypCh.Value = "CSM, KU, DÄ" Or Cells(5, 12) = "Or" Then
Cells(3, 27) = 3
Else
If TypIm.Value = "IA" Or TypIm.Value = "TL" Or TypIm.Value = "IA, TL" Or TypCh.Value = "KU" Or TypCh.Value = "DÄ" Or TypCh.Value = "KU, DÄ" Then
Cells(3, 27) = 2
Else
Cells(3, 27) = 1
End If
End If
End If
End If
End Sub
|