Hallo zusammen,
ich habe eine UserForm erstellt mit insgesamt 44 CheckBoxen. Man kann aus 22 "Varianten" wählen und jeweils []Ja oder []Nein wählen. Je nach Wahl soll dann ein anderer Text ausgegeben werden. Nun habe ich das, vermutlich sehr umständlich, mit einer If-Anweisung implementiert.
Je nachdem wieviele Kreuze man insgesamt gesetzt hat, soll eine dementsprechende Anzahl an Zeilen beschrieben werden. Dies tut das Programm auch bereits. Nur habe ich das Problem, dass immer der gleiche Text in die Zeilen geschrieben wird. Es ist immer der Text der ersten angewählten CheckBox die durchlaufen wird.
Anbei mein bisheriger Code.
Private Sub CommandButton1_Click()
Dim zeile As Integer
Dim CB As CheckBox
Dim cntrl As Control
Dim CheckBoxAnzahlIP As Integer
Dim i As Integer
Dim Zwischenspeicher As String
Zwischenspeicher = ""
'Checkoboxen zählen
For Each cntrl In Me.Controls
If TypeName(cntrl) = "CheckBox" Then
If cntrl Then CheckBoxAnzahlIP = CheckBoxAnzahlIP + 1
End If
Next
'Ausgabe Spalte Benennung
zeile = Cells(Rows.Count, 1).End(xlUp).Row + 1
For i = 1 To CheckBoxAnzahlIP
Cells(zeile, 2) = TextBox1.Text
Cells(zeile, 6) = TextBox2.Text
Cells(zeile, 1) = "x"
If CheckBox1.Value = True Then
Zwischenspeicher = "Rohteil Kurbelgehäuse Sandguss Normal"
ElseIf CheckBox2.Value = True Then
Zwischenspeicher = "Rohteil Kurbelgehäuse Sandguss Stegmess"
ElseIf CheckBox3.Value = True Then
Zwischenspeicher = "Rohteil Kurbelgehäuse Sandguss Vollvermessen"
ElseIf CheckBox4.Value = True Then
Zwischenspeicher = "Rohteil Kurbelgehäuse Sandguss"
ElseIf CheckBox5.Value = True Then
Zwischenspeicher = "Rohteil Kurbelgehäuse Sandguss"
ElseIf CheckBox6.Value = True Then
Zwischenspeicher = "Rohteil Kurbelgehäuse Sandguss"
ElseIf CheckBox7.Value = True Then
Zwischenspeicher = "Rohteil Zylinderkopf Sandguss Normal"
ElseIf CheckBox8.Value = True Then
Zwischenspeicher = "Rohteil Zylinderkopf Sandguss + AV-Messstellen"
ElseIf CheckBox9.Value = True Then
Zwischenspeicher = "Rohteil Zylinderkopf Sandguss Indiziert"
ElseIf CheckBox10.Value = True Then
Zwischenspeicher = "Rohteil Zylinderkopf Sandguss Indiziert+AV-Messstellen"
ElseIf CheckBox11.Value = True Then
Zwischenspeicher = "Rohteil Zylinderkopf Sandguss Endoskopie"
ElseIf CheckBox12.Value = True Then
Zwischenspeicher = "Rohteil Zylinderkopf Sandguss Vollvermessen"
ElseIf CheckBox13.Value = True Then
Zwischenspeicher = "Rohteil Zylinderkopf Sandguss"
ElseIf CheckBox14.Value = True Then
Zwischenspeicher = "Rohteil Zylinderkopf Sandguss"
ElseIf CheckBox15.Value = True Then
Zwischenspeicher = "Rohteil Zylinderkopf Sandguss"
ElseIf CheckBox16.Value = True Then
Zwischenspeicher = "Rohteil Zylinderkopf Sandguss"
ElseIf CheckBox17.Value = True Then
Zwischenspeicher = "Rohteil Zylinderkopf Sandguss"
ElseIf CheckBox18.Value = True Then
Zwischenspeicher = "Rohteil Zylinderkopf Sandguss"
ElseIf CheckBox19.Value = True Then
Zwischenspeicher = "Rohteil Kurbelwelle Sandguss Normal"
ElseIf CheckBox20.Value = True Then
Zwischenspeicher = "Rohteil Kurbelwelle Sandguss Vollvermessen"
ElseIf CheckBox21.Value = True Then
Zwischenspeicher = "Rohteil Kurbelwelle Sandguss"
ElseIf CheckBox22.Value = True Then
Zwischenspeicher = "Rohteil Kurbelwelle Sandguss"
ElseIf CheckBox23.Value = True Then
Zwischenspeicher = "Rohteil Pleuel Sandguss Normal"
ElseIf CheckBox24.Value = True Then
Zwischenspeicher = "Rohteil Pleuel Sandguss Vollvermessen"
ElseIf CheckBox25.Value = True Then
Zwischenspeicher = "Rohteil Pleuel Sandguss"
ElseIf CheckBox26.Value = True Then
Zwischenspeicher = "Rohteil Pleuel Sandguss"
ElseIf CheckBox27.Value = True Then
Zwischenspeicher = "Rohteil Kurbelgehäuse Kokille Normal"
ElseIf CheckBox28.Value = True Then
Zwischenspeicher = "Rohteil Kurbelgehäuse Kokille Stegmess"
ElseIf CheckBox29.Value = True Then
Zwischenspeicher = "Rohteil Kurbelgehäuse Kokille Vollvermessen"
ElseIf CheckBox30.Value = True Then
Zwischenspeicher = "Rohteil Kurbelgehäuse Kokille"
ElseIf CheckBox31.Value = True Then
Zwischenspeicher = "Rohteil Kurbelgehäuse Kokille"
ElseIf CheckBox32.Value = True Then
Zwischenspeicher = "Rohteil Kurbelgehäuse Kokille"
ElseIf CheckBox33.Value = True Then
Zwischenspeicher = "Rohteil Zylinderkopf Kokille Normal"
ElseIf CheckBox34.Value = True Then
Zwischenspeicher = "Rohteil Zylinderkopf Kokille+AV-Messstellen"
ElseIf CheckBox35.Value = True Then
Zwischenspeicher = "Rohteil Zylinderkopf Kokille Indiziert"
ElseIf CheckBox36.Value = True Then
Zwischenspeicher = "Rohteil Zylinderkopf Kokille Indiziert+AV-Messstellen"
ElseIf CheckBox37.Value = True Then
Zwischenspeicher = "Rohteil Zylinderkopf Kokille Endoskopie"
ElseIf CheckBox38.Value = True Then
Zwischenspeicher = "Rohteil Zylinderkopf Kokille Vollvermessen"
ElseIf CheckBox39.Value = True Then
Zwischenspeicher = "Rohteil Zylinderkopf Kokille"
ElseIf CheckBox40.Value = True Then
Zwischenspeicher = "Rohteil Zylinderkopf Kokille"
ElseIf CheckBox41.Value = True Then
Zwischenspeicher = "Rohteil Zylinderkopf Kokille"
ElseIf CheckBox42.Value = True Then
Zwischenspeicher = "Rohteil Zylinderkopf Kokille"
ElseIf CheckBox43.Value = True Then
Zwischenspeicher = "Rohteil Zylinderkopf Kokille"
ElseIf CheckBox44.Value = True Then
Zwischenspeicher = "Rohteil Zylinderkopf Kokille"
End If
Cells(zeile, 9) = Zwischenspeicher
zeile = zeile + 1
Zwischenspeicher = ""
Next i
End Sub
Kann mir Jemand sagen wo hier mein Fehler liegt?
|