Mehrere Checkboxes abfragen
#1
Hallo zusammen,

Ich habe folgendes Problem, bei dem ich nicht ganz weiter komme: Ich habe vier CheckBoxes: 1) EUR 2) Lokale Währung 3) Bilanz 4) GuV.
Das Ziel ist folgendes: Wenn 1,2 und 3 angewählt ist, sollen alle Bilanzen (werden auf verschiedenen Blättern abgebildet) in Euro und lokaler Währung angezeigt werden. Gleiches gilt für die GuV bei 1,2 und 4. Des Weiteren soll es aber auch möglich sein nur die Bilanzen in Euro oder lokaler Währung angezeigt zu bekommen. 
Der Grund warum ich mit den Checkboxes arbeite, ist die enorme Anzahl an Reitern. Die Datei soll für den Empfänger übersichtlich gehalten werden.

Der aktuelle Code den ich verwende bezieht sich leider nur auf eine Bedingung (alles in Euro):

Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
    Sheets("P&L EUR").Visible = True
    Sheets("BS EUR").Visible = True
    Else
    Sheets("P&L EUR").Visible = False
    Sheets("BS EUR").Visible = False
End If
End Sub

   
Vielen Dank & viele Grüße
Top
#2
Hallöchen,

Du kannst einfach mehrere Bedingungen mit logischen Operatoren verknüpfen, Klammersetzung ist auch möglich ...

z.b.
If CheckBox1.Value = True And CheckBox2.Value = True And CheckBox3.Value = True Then

oder
If CheckBox1.Value = True Or CheckBox2.Value = True Or CheckBox3.Value = True Then

oder
If CheckBox1.Value = True And (CheckBox2.Value = True Or CheckBox3.Value = True) Then

...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Goleo
Top
#3
Vielen Dank für Deine Antwort :)

Kann Ich denn 3 Bedingungen einem Button zuweisen? Sprich:

If CheckBox1.Value = True And CheckBox2.Value = True And CheckBox3.Value = True Then
    Sheets("BS EUR").Visible = True
    Sheets("BS LC").Visible = True
    Else
    Sheets("BS EUR").Visible = False
    Sheets("BS LC").Visible = False
End If
If CheckBox1.Value = True And CheckBox2.Value = False And CheckBox3.Value = True Then
    Sheets("BS EUR").Visible = True
    Else
    Sheets("BS EUR").Visible = False
End If
If CheckBox1.Value = False And CheckBox2.Value = True And CheckBox3.Value = True Then
    Sheets("BS LC").Visible = True
    Else
    Sheets("BS LC").Visible = False
End If
End Sub

Er soll also checken, welche von diesen drei Fallen zutreffend ist, bzw. ausgewählt wurde.

Viele Dank & viele Grüße
Top
#4
Ja, kannst du, hierfür gibt es ElseIf. Dies kannst du anstatt Else verwenden und alles in eins verpacken.

Grüße Silcono
[-] Folgende(r) 1 Nutzer sagt Danke an silcono für diesen Beitrag:
  • Goleo
Top
#5
Hallo Silcono,

ElseIf gibt es bei mir leider nicht :/

Grüße
Top
#6
bzw. es kommt immer die Fehlermeldung: Fehler beim Kompilieren: Erwartet: Ausdruck
Top
#7
Gibt es schon.
Zeig doch mal deinen Code, nachdem du ihn bearbeitet hast.

Grüße
[-] Folgende(r) 1 Nutzer sagt Danke an silcono für diesen Beitrag:
  • Goleo
Top
#8
Private Sub CheckBox3_Click()
If CheckBox1.Value = True And CheckBox2.Value = True And CheckBox3.Value = True Then
    Sheets("P&L EUR (MTD)").Visible = True
    Sheets("P&L LC (MTD)").Visible = True
    ElseIf
    Sheets("P&L EUR (MTD)").Visible = False
    Sheets("P&L LC (MTD)").Visible = False
    End If
If CheckBox1.Value = True And CheckBox2.Value = False And CheckBox3.Value = True Then
    Sheets("P&L EUR (MTD)").Visible = True
    ElseIf
    Sheets("P&L EUR (MTD)").Visible = False
End If
ElseIf CheckBox1.Value = False And CheckBox2.Value = True And CheckBox3.Value = True Then
    Sheets("P&L LC (MTD)").Visible = True
    ElseIf
    Sheets("P&L LC (MTD)").Visible = False
End If
End Sub

Vielen Dank vorab für Deine Hilfe (Y)
Top
#9
Diese code reicht


Code:
    Sheets("BS EUR").Visible = CheckBox1* CheckBox2* CheckBox3
    Sheets("BS LC").Visible = not Sheets("BS EUR").Visible
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Goleo
Top
#10
Hallo,
wenn auch der Code von snb reicht, hier einmal die Abwandlung deiner Konstruktion mit ElseIffür künftige Anwendungen:

Private Sub CheckBox3_Click()
If CheckBox1.Value = True And CheckBox2.Value = True And CheckBox3.Value = True Then
    Sheets("P&L EUR (MTD)").Visible = True
    Sheets("P&L LC (MTD)").Visible = True
ElseIf CheckBox1.Value = True And CheckBox2.Value = False And CheckBox3.Value = True Then
    Sheets("P&L EUR (MTD)").Visible = True
ElseIf CheckBox1.Value = False And CheckBox2.Value = True And CheckBox3.Value = True Then
    Sheets("P&L LC (MTD)").Visible = True
End If
End Sub
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
[-] Folgende(r) 1 Nutzer sagt Danke an Glausius für diesen Beitrag:
  • Goleo
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste