Checkbox wird falsch ausgedruckt
06.12.2006 14:42:59
Tobias
ich habe folgendes Problem: Ich habe eine Tabelle , die berechnet, ob ein Schüler die Prüfung bestanden hat oder ob er durchgefallen ist. Je nach Fall wird entweder eine Checkbox angehakt für Durchgefallen oder Bestanden. Nun passiert Folgendes: Das Ganze wird durch eine for...next-Schleife für jeden Schüler durchlaufen. Für den ersten Schüler wird die Checkbox auch richtig angehakt und ausgedruckt, für jeden weiteren Schüler aber wird - trotz, dass das Ergebnis richtig berechnet wurde und auf dem Tabellenblatt auch die richtige Checkbox angehakt ist, die Checkbox des ersten Schülers ausgedruckt. Also z.B. hat der Schüler 2, trotz einem Notenschnitt von 5,5 die Prüfung bestanden, da Schüler 1 die Prüfung bestanden hat.
Das Ganze muss wohl ein Fehler im Excel sein, da ja sonst die Berechnung auf dem Tabellenblatt - die ja richtig ist - auch falsch sein müsste. Ich hab auch schon mit DoEvents und Application.ScreenUpdate rumprobiert, allerdings ohne Erfolg. Die relevanten Teile meines Quelltextes sind unten aufgeführt.
Vielen Dank für eure Hilfe,
Tobias
Quelltext:
Set HWK = Workbooks("HWK-Ausdruck").Worksheets(1)
Set Noten = Workbooks("Noten").Worksheets(1)
Set Haupt = Workbooks("GP-T2-Pkw1-50-V1").Worksheets("Datenliste2")
For j = 7 To Cells(Rows.Count, 2).End(xlUp).Row
HWK.OLEObjects("CheckBox1").Object.Value = 0
HWK.OLEObjects("CheckBox2").Object.Value = 0
If HWK.Range("M24").Value >= 4.5 Then
HWK.OLEObjects("CheckBox1").Object.Value = 0
HWK.OLEObjects("CheckBox2").Object.Value = 1
End If
If HWK.Range("M36").Value >= 4.5 Then
HWK.OLEObjects("CheckBox1").Object.Value = 0
HWK.OLEObjects("CheckBox2").Object.Value = 1
End If
If HWK.Range("M27").Value >= 5.5 Then
HWK.OLEObjects("CheckBox1").Object.Value = 0
HWK.OLEObjects("CheckBox2").Object.Value = 1
End If
If HWK.Range("M30").Value >= 5.5 Then
HWK.OLEObjects("CheckBox1").Object.Value = 0
HWK.OLEObjects("CheckBox2").Object.Value = 1
End If
If HWK.Range("M33").Value >= 5.5 Then
HWK.OLEObjects("CheckBox1").Object.Value = 0
HWK.OLEObjects("CheckBox2").Object.Value = 1
End If
If HWK.Range("M27").Value + HWK.Range("M30").Value + HWK.Range("M33").Value >= 14.2 Then
HWK.OLEObjects("CheckBox1").Object.Value = 0
HWK.OLEObjects("CheckBox2").Object.Value = 1
End If
If HWK.Range("M27").Value >= 4.5 Then
If HWK.Range("M30").Value >= 4.4 Or HWK.Range("M33").Value >= 4.4 Then
HWK.OLEObjects("CheckBox1").Object.Value = 0
HWK.OLEObjects("CheckBox2").Object.Value = 1
End If
End If
If HWK.Range("M30").Value >= 4.5 Then
If HWK.Range("M27").Value >= 4.4 Or HWK.Range("M33").Value >= 4.4 Then
HWK.OLEObjects("CheckBox1").Object.Value = 0
HWK.OLEObjects("CheckBox2").Object.Value = 1
End If
End If
If HWK.Range("M33").Value >= 4.5 Then
If HWK.Range("M27").Value >= 4.4 Or HWK.Range("M30").Value >= 4.4 Then
HWK.OLEObjects("CheckBox1").Object.Value = 0
HWK.OLEObjects("CheckBox2").Object.Value = 1
End If
End If
If HWK.Range("M27").Value >= 4.5 Then
If HWK.Range("M30").Value >= 4.4 And HWK.Range("M33").Value >= 4.4 Then
HWK.OLEObjects("CheckBox1").Object.Value = 0
HWK.OLEObjects("CheckBox2").Object.Value = 1
End If
End If
If HWK.Range("M30").Value >= 4.5 Then
If HWK.Range("M27").Value >= 4.4 And HWK.Range("M33").Value >= 4.4 Then
HWK.OLEObjects("CheckBox1").Object.Value = 0
HWK.OLEObjects("CheckBox2").Object.Value = 1
End If
End If
If HWK.Range("M33").Value >= 4.5 Then
If HWK.Range("M27").Value >= 4.4 And HWK.Range("M30").Value >= 4.4 Then
HWK.OLEObjects("CheckBox1").Object.Value = 0
HWK.OLEObjects("CheckBox2").Object.Value = 1
End If
End If
If HWK.OLEObjects("CheckBox2").Object.Value = 0 Then
HWK.OLEObjects("CheckBox1").Object.Value = 1
End If
DoEvents
Application.EnableEvents = False
Workbooks("HWK-Ausdruck").Worksheets(1).Activate
ActiveSheet.PrintOut
Workbooks("GP-T2-Pkw1-50-V1").Worksheets("Datenliste2").Activate
Next j