VBA-Code

Registriert
Feb. 2019
Beiträge
6
Hallo,
ich habe eine Frage bezüglich einen von mir erstellten Code. Ich habe 4 verschiedene Checkboxen, die jeweils auf einen anderen Wert zugreifen und in die gleiche Zelle kopieren. Wenn ich eine von den Checkboxen anklicke, dann sollen die anderen deaktiviert werden.
Mein Code:

Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
Wert = Sheets("Daten").Range("E5").Value
Sheets("Input").Range("H4").Value = Wert
CheckBox2.Value = False
CheckBox3.Value = False
CheckBox4.Value = False
Else
Sheets("Input").Range("H4").Value = 0
End If
End Sub

Leider aktualisiert sich die Daten nicht, wenn ich eine andere Checkbox auswähle. Wäre nett wenn ihr mir helft mein Problem zu lösen
 
Was genau ist dein Problem? Du hast hier eine Methode für CheckBox1 geschrieben. Wie siehts bei den anderen aus? Haben die auch so eine, halt angepasst auf deren Indizes (1-4)?
Und wenn du schreibst "aktualisier[en] sich die Daten nicht"...heißt das sie aktualisieren sich generell nicht oder nur wenn du eine der Checkboxen anklickst, die gar keine passende Methode haben?

(Mit VBA selbst kenne ich mich nicht aus, aber bin im C# Umfeld unterwegs und geh hier einfach mit Standard-Analyse an die Sache ran :D)
 
Bitte den Code künftig sauber formatieren:

Code:
Private Sub CheckBox1_Click()
  If CheckBox1.Value = True Then
    Wert = Sheets("Daten").Range("E5").Value
    Sheets("Input").Range("H4").Value = Wert
    CheckBox2.Value = False
    CheckBox3.Value = False
    CheckBox4.Value = False
  Else
    Sheets("Input").Range("H4").Value = 0
  End If
End Sub

Kann doch nicht so schwer sein, es denen die Helfen wollen einfacher zu machen, indem man den Code sauber formatiert. Ich habe das mal für dich erledigt.

greetz
hroessler
 
Code:
  If CheckBox1.Value = True Then

ist das in vba wirklich ein vergleich? überall sonst wäre das eine zuweisung.
 
0x8100 schrieb:
ist das in vba wirklich ein vergleich? überall sonst wäre das eine zuweisung.

Ja, in VBA ist das ein Vergleich und eine Zuweisung. Bei einer If-Abfrage weiß er, dass nur ein Vergleich sinnvoll sein kein

Matin.123456789 schrieb:
Wenn ich eine von den Checkboxen anklicke, dann sollen die anderen deaktiviert werden.

Dann musst du das auch so programmieren.
Es fehlen die Abfragen:

Private Sub CheckBox2_Click()
Private Sub CheckBox3_Click()
usw.
 
Mal nebenher… Wären bei diesem gegenseitigen Ausschalten nicht RadioButtons gefordert?

Und noch eine Anmerkung: der Code setzt die Checkboxen so als würde man sie drücken, worauf die eben zitierten Subs mit _Click() reagieren.. Schlsgwort EnableEvents.

Solche Checkboxen zu kontrollieren würde einen Berg IF-Konstruktionen erfordern. Ich habe da genug Krampf mit gehabt.

CN8
 
Zurück
Oben