Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: mit checkboxen Buttons ein/aus blenden

mit checkboxen Buttons ein/aus blenden
11.08.2015 15:00:31
Beat
Hallo
Nach gewissen anfangsschwierigkeiten bin ich nun etwas tiefer in VBA und schon stehe ich wieder an.
Ich möchte basierend einer Auswahl an Checkboxen, Buttons ein bzw. Ausblenden.
Wenn CheckBox1 aktiv dann soll der "DE" Button sichtbar sein
Wenn CheckBox2 aktiv dann soll der "EN" Button sichtbar sein, "DE" aber nicht.
Wenn CheckBox1 und 2 aktiv sind dann soll der Button "Alle Sprachen" sichtbar sein die beiden DE und EN Buttons aber unsichtbar.
etc. Ich habe 4 Checkboxen.
da gibt es eine vielzahl von erst selektirten Möglichkeiten. Ich habe nun begonnen dies im _
ersten CheckBox sub einzugeben aber irgendwie exportiert hier die Menge an code und es wird ä _ usserst unübersichtlich:

Public Sub CheckBox1_Change()
'Wenn DE gewählt wird
If Worksheets("LANG").CheckBox1.Value = True Then
CommandButton1.Visible = True
CommandButton2.Visible = False
CommandButton3.Visible = False
Else
CommandButton1.Visible = False
End If
'Wenn DE und EN gewählt & FR und ES nicht gewählt sind
If Worksheets("LANG").CheckBox1.Value = True And Worksheets("LANG").CheckBox2.Value = True   _
_
_
_
Then
CommandButton1.Visible = False
CommandButton2.Visible = True
CommandButton3.Visible = False
Else
CommandButton2.Visible = False
End If
' wenn DE und FR gewählt wird
If Worksheets("LANG").CheckBox1.Value = True And Worksheets("LANG").CheckBox3.Value = True   _
_
_
_
Then
CommandButton1.Visible = False
CommandButton2.Visible = True
CommandButton3.Visible = False
Else
CommandButton2.Visible = False
End If
' wenn DE und ES gewählt wird
If Worksheets("LANG").CheckBox1.Value = True And Worksheets("LANG").CheckBox4.Value = True   _
_
_
_
Then
CommandButton1.Visible = False
CommandButton2.Visible = True
CommandButton3.Visible = False
Else
CommandButton2.Visible = False
End If
If Worksheets("LANG").CheckBox1.Value Then
'Wenn Checkbox1 auf der Tabelle1 aktiviert ist, dann
Worksheets("DE").Visible = True
'Tabelle2 einblenden
Else
Worksheets("DE").Visible = False
'ansonsten Tabelle2 ausblenden
End If
End Sub

gibt es eine bessere Variante als diesen Code in allen 4 Check boxen zu wiederholen?
Mein code blendet gleichzeitg auch das entsprechende Tabellenblatt ein, dies Funktioniert aber einwandfrei.
Ich danke für eure Hilfe.
gruss beat

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mit checkboxen Buttons ein/aus blenden
11.08.2015 15:28:28
Rudi
hallo,
das kannst du ohne If mit reiner Logik machen.
Wenn CheckBox1 aktiv dann soll der "DE" Button sichtbar sein
Wenn CheckBox2 aktiv dann soll der "EN" Button sichtbar sein, "DE" aber nicht.
Wenn CheckBox1 und 2 aktiv sind dann soll der Button "Alle Sprachen" sichtbar sein die beiden DE und EN Buttons aber unsichtbar.

sieht etwa so aus:
cmdDE.visible=checkbox1 and not checkbox2
cmdEN.visible= checkbox2 and not checkbox1
cmdAlle.visible=checkbox1 and checkbox2
Gruß
Rudi

Anzeige
AW: mit checkboxen Buttons ein/aus blenden
11.08.2015 16:01:09
Beat
Hallo Ruedi
Super, das funktioniert danke für die Rasche antwort!
gruss beat
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Checkboxen verwenden, um Buttons ein- und auszublenden


Schritt-für-Schritt-Anleitung

  1. Öffne das Excel-Dokument und gehe zum Visual Basic for Applications (VBA) Editor (Alt + F11).
  2. Füge die Checkboxen auf deinem Arbeitsblatt ein. Du benötigst mindestens 4 Checkboxen.
  3. Füge die Buttons hinzu, die du ein- oder ausblenden möchtest.
  4. Gehe zum Code-Bereich deines Arbeitsblatts und füge den folgenden VBA-Code ein:
Private Sub CheckBox1_Click()
    UpdateButtonVisibility
End Sub

Private Sub CheckBox2_Click()
    UpdateButtonVisibility
End Sub

Private Sub CheckBox3_Click()
    UpdateButtonVisibility
End Sub

Private Sub CheckBox4_Click()
    UpdateButtonVisibility
End Sub

Private Sub UpdateButtonVisibility()
    CommandButton1.Visible = CheckBox1.Value And Not CheckBox2.Value
    CommandButton2.Visible = CheckBox2.Value And Not CheckBox1.Value
    CommandButton3.Visible = CheckBox1.Value And CheckBox2.Value
End Sub
  1. Testen: Aktiviere die Checkboxen und beobachte, wie die Buttons entsprechend ein- und ausgeblendet werden.

Häufige Fehler und Lösungen

  • Fehler: Buttons bleiben immer sichtbar

    • Lösung: Stelle sicher, dass der UpdateButtonVisibility-Subroutine korrekt aufgerufen wird, wenn eine Checkbox aktiviert oder deaktiviert wird.
  • Fehler: Fehlermeldung beim Kompilieren

    • Lösung: Überprüfe, ob alle Checkboxen und Buttons korrekt benannt sind. Achte darauf, dass die Namen im Code mit den tatsächlichen Namen in Excel übereinstimmen.

Alternative Methoden

Anstelle von VBA kannst du auch Bedingte Formatierungen verwenden, um die Sichtbarkeit von Buttons zu steuern, allerdings ist dies weniger flexibel. Eine andere Möglichkeit ist die Verwendung von Formularsteuerelementen anstelle von ActiveX-Steuerelementen, was die Programmierung vereinfachen kann.


Praktische Beispiele

Hier ist ein Beispiel, wie du die Sichtbarkeit von Buttons bei Auswahl von Checkboxen steuern kannst:

  • Wenn Checkbox1 aktiviert ist, wird der Button "DE" angezeigt.
  • Wenn Checkbox2 aktiviert ist, wird der Button "EN" angezeigt, der "DE" Button wird verborgen.
  • Wenn beide Checkboxen aktiviert sind, wird der Button "Alle Sprachen" sichtbar, während die anderen beiden Buttons verborgen bleiben.

Tipps für Profis

  • Verwende eine Schleife: Wenn du viele Checkboxen hast, kann eine Schleife den Code kürzer und übersichtlicher machen.

  • Fehlerbehandlung: Implementiere einfache Fehlerbehandlungsroutinen in deinen VBA-Code, um sicherzustellen, dass der Code auch bei unerwarteten Eingaben funktioniert.


FAQ: Häufige Fragen

1. Kann ich die Sichtbarkeit von mehr als 4 Buttons steuern?
Ja, du kannst den VBA-Code einfach erweitern, um mehr Buttons und Checkboxen zu integrieren.

2. Muss ich die Checkboxen und Buttons in einer bestimmten Reihenfolge anordnen?
Nein, die Anordnung hat keinen Einfluss auf die Funktionalität. Achte jedoch darauf, dass die Namen im Code korrekt sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige