Kontrollkästche ansprechen und mit Wert hochzählen

Hallo,

ich habe in Word Kontrollkästchen. Ich habe ein Vba Script, welches ausliest, wie viele dieser Kästchen ausgewählt wurden. Jetzt möchte ich aber, dass ein Kontrollkästchen einen bestimmten werden hat. Also anstatt 1 hochzuzählen, soll das eine Kontrollkästchen den Wert 10 erhalten (würde ergeben, dass das Ergebnis statt 30 Punkte 40 Punkte erhalten würde)

Kann mir jemand helfen, wie ich das machen kann?!

hier noch mein Code…

Sub Punkte_berechnen()

Dim oDoc As Document
Dim ffld As FormField
Dim iCount As Integer, iCountTotal As Integer
Set oDoc = ActiveDocument
For Each ffld In oDoc.FormFields
If ffld.Type = wdFieldFormCheckBox Then
iCountTotal = iCountTotal + 1
If ffld.Checkbox.Value = True Then
iCount = iCount + 1
End If
End If
Next ffld
MsgBox "Aktivierte Kontrollkästchen: " & iCount & „/“ & iCountTotal, vbInformation

End Sub

Gruß

Daniel

ich habe in Word Kontrollkästchen. Ich habe ein Vba Script,
welches ausliest, wie viele dieser Kästchen ausgewählt wurden.
Jetzt möchte ich aber, dass ein Kontrollkästchen einen
bestimmten werden hat. Also anstatt 1 hochzuzählen, soll das
eine Kontrollkästchen den Wert 10 erhalten (würde ergeben,
dass das Ergebnis statt 30 Punkte 40 Punkte erhalten würde)

Hallo Daniel,

welches Kontrollkästchen?

Gruß
Reinhard

Hallo Daniel.

Sofern Du die ActiveX-Kontrollkästchen verwendet hast, könnte folgendes Beispiel hilfreich sein. Am Besten ist, Du öffnest eine neue Datei und probierst es dort erst einmal aus. Du benötigst dafür 10 ActiveX-CheckBoxen auf dem Dokument.

Klicke im VisualBasic-Editor im Menü „Einfügen“ auf „Modul“ und füge den nachfolgenden Code dort ein:

Public CheckBoxWerte(0 To 9) As Integer
Public CheckBoxSumme As Integer

Public Sub CheckBoxWerte\_Setzen()
 CheckBoxWerte(0) = -1
 CheckBoxWerte(1) = -2
 CheckBoxWerte(2) = -3
 CheckBoxWerte(3) = -4
 CheckBoxWerte(4) = -5
 CheckBoxWerte(5) = -6
 CheckBoxWerte(6) = -7
 CheckBoxWerte(7) = -8
 CheckBoxWerte(8) = -9
 CheckBoxWerte(9) = -10
End Sub

Public Sub CheckBoxSumme\_Berechnen()
 CheckBoxSumme = \_
 CheckBoxWerte(0) \* CInt(ThisDocument.CheckBox1.Value) + \_
 CheckBoxWerte(1) \* CInt(ThisDocument.CheckBox2.Value) + \_
 CheckBoxWerte(2) \* CInt(ThisDocument.CheckBox3.Value) + \_
 CheckBoxWerte(3) \* CInt(ThisDocument.CheckBox4.Value) + \_
 CheckBoxWerte(4) \* CInt(ThisDocument.CheckBox5.Value) + \_
 CheckBoxWerte(5) \* CInt(ThisDocument.CheckBox6.Value) + \_
 CheckBoxWerte(6) \* CInt(ThisDocument.CheckBox7.Value) + \_
 CheckBoxWerte(7) \* CInt(ThisDocument.CheckBox8.Value) + \_
 CheckBoxWerte(8) \* CInt(ThisDocument.CheckBox9.Value) + \_
 CheckBoxWerte(9) \* CInt(ThisDocument.CheckBox10.Value)
 MsgBox "Die Summe aller aktivierten Checkboxen beträgt " & CStr(CheckBoxSumme)
End Sub

Gehe danach bitte in das Codefenster von „ThisDocument“ und füge dort den nachfolgenden Code ein:

Private Sub CheckBox1\_Click()
 Call CheckBoxSumme\_Berechnen
End Sub

Private Sub CheckBox10\_Click()
 Call CheckBoxSumme\_Berechnen
End Sub

Private Sub CheckBox2\_Click()
 Call CheckBoxSumme\_Berechnen
End Sub

Private Sub CheckBox3\_Click()
 Call CheckBoxSumme\_Berechnen
End Sub

Private Sub CheckBox4\_Click()
 Call CheckBoxSumme\_Berechnen
End Sub

Private Sub CheckBox5\_Click()
 Call CheckBoxSumme\_Berechnen
End Sub

Private Sub CheckBox6\_Click()
 Call CheckBoxSumme\_Berechnen
End Sub

Private Sub CheckBox7\_Click()
 Call CheckBoxSumme\_Berechnen
End Sub

Private Sub CheckBox8\_Click()
 Call CheckBoxSumme\_Berechnen
End Sub

Private Sub CheckBox9\_Click()
 Call CheckBoxSumme\_Berechnen
End Sub

Private Sub Document\_Open()
 Call CheckBoxWerte\_Setzen
End Sub

Klicke danach im Menü „Debuggen“ auf „Kompilieren …“.
Schließe dann bitte die Datei und öffne sie erneut.

Ich denke der Code ist relativ selbsterklärend. Nur eins vielleicht: Die Funktion CInt() wandelt die Boolschen Werte der CheckBox-Eigenschaft „Value“ in Zahlen um, wobei False in 0 und True in -1 umgewandelt wird. Daher sind in dem Array „CheckBoxWerte“ die Zahlen negativ.

VG
Carsten