Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Steuerelemente sichtbar oder unsichtbar

Forumthread: Steuerelemente sichtbar oder unsichtbar

Steuerelemente sichtbar oder unsichtbar
26.12.2017 19:52:27
Ludmila
Hallo,
in einer UF mit 5 Textboxen und 5 ComboBoxen soll geprüft werden ob diese einen Text enthalten oder nicht.
Es soll nicht vorkommen das wenn Textbox 1-4 und Combobox 1-4 sichtbar sind und Textbox2 und ComboBox2 keinen Wert enthalten das Text/Combobox 3 und 4 sichtbar bleiben.
Ideal wäre es wenn der Text/ComboBox 3 in Text/ComboBox 2 und der Text/ComboBox4 in Text/ComboBox 3 übernommen werden.
Dies scheint mir jedoch zu kompliziert.
Vielen Dank, für Eure Unterstützung.
Schönen Feiertag noch!
mfg Ludmila
https://www.herber.de/bbs/user/118526.xlsm
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Steuerelemente sichtbar oder unsichtbar
27.12.2017 15:55:55
Beverly
Hi Ludmila,
hier mal ein Code zum Ein-/Ausblenden der Text-/ComboBoxen:
Private Sub TextBox1_Change()
TextBox2.Visible = TextBox1  "" And ComboBox1  ""
ComboBox2.Visible = TextBox1  "" And ComboBox1  ""
TextBox2 = ""
ComboBox2 = ""
End Sub
Private Sub ComboBox1_Change()
TextBox2.Visible = TextBox1  "" And ComboBox1  ""
ComboBox2.Visible = TextBox1  "" And ComboBox1  ""
TextBox2 = ""
ComboBox2 = ""
End Sub
Private Sub TextBox2_Change()
TextBox3.Visible = TextBox2  "" And ComboBox2  ""
ComboBox3.Visible = TextBox2  "" And ComboBox2  ""
TextBox3 = ""
ComboBox3 = ""
End Sub
Private Sub ComboBox2_Change()
TextBox3.Visible = TextBox2  "" And ComboBox2  ""
ComboBox3.Visible = TextBox2  "" And ComboBox2  ""
TextBox3 = ""
ComboBox3 = ""
End Sub
Private Sub TextBox3_Change()
TextBox4.Visible = TextBox3  "" And ComboBox3  ""
ComboBox4.Visible = TextBox3  "" And ComboBox3  ""
TextBox4 = ""
ComboBox4 = ""
End Sub
Private Sub ComboBox3_Change()
TextBox4.Visible = TextBox3  "" And ComboBox3  ""
ComboBox4.Visible = TextBox3  "" And ComboBox3  ""
TextBox4 = ""
ComboBox4 = ""
End Sub
Private Sub TextBox4_Change()
TextBox5.Visible = TextBox4  "" And ComboBox4  ""
ComboBox5.Visible = TextBox4  "" And ComboBox4  ""
TextBox5 = ""
ComboBox5 = ""
End Sub
Private Sub ComboBox4_Change()
TextBox5.Visible = TextBox4  "" And ComboBox4  ""
ComboBox5.Visible = TextBox4  "" And ComboBox4  ""
TextBox5 = ""
ComboBox5 = ""
End Sub

Den Sinn des Rests habe ich nicht verstanden: wozu sollen denn Text-/ComboBoxen (4. = 3. = 2.) die selben Werte enthalten...?


Anzeige
AW: Steuerelemente sichtbar oder unsichtbar
27.12.2017 16:58:10
Piet
Hallo Ludmila
ich sehe das es einen schönen Code von Karin gibt. In meinem habe ich noch die For Next Schleife korrigiert.
mfg Piet
Option Explicit      '27.12.2017  Piet  Herber Forum
Private Sub ComboBox1_Change()
Controls("TextBox2").Visible = True
Controls("Combobox2").Visible = True
End Sub
Private Sub ComboBox2_Change()
Controls("TextBox3").Visible = True
Controls("Combobox3").Visible = True
End Sub
Private Sub ComboBox3_Change()
Controls("TextBox4").Visible = True
Controls("Combobox4").Visible = True
End Sub
Private Sub ComboBox4_Change()
Controls("TextBox5").Visible = True
Controls("Combobox5").Visible = True
End Sub
Private Sub TextBox1_Change()
If TextBox1.Value = "" Then
Controls("TextBox2").Visible = False
Controls("ComboBox2").Visible = False
End If
End Sub
Private Sub TextBox2_Change()
If TextBox2.Value = "" Then
Controls("TextBox3").Visible = False
Controls("ComboBox3").Visible = False
End If
End Sub
Private Sub TextBox3_Change()
If TextBox3.Value = "" Then
Controls("TextBox4").Visible = False
Controls("ComboBox4").Visible = False
End If
End Sub
Private Sub TextBox4_Change()
If TextBox4.Value = "" Then
Controls("TextBox5").Visible = False
Controls("ComboBox5").Visible = False
End If
End Sub
Private Sub CommandButton1_Click()
Dim y As Integer
'Schleife für True mit Exit for bei Leerstand
For y = 1 To 4
If Controls("TextBox" & y).Value  "" And Controls("Combobox" & y).Value  "" Then
Controls("TextBox" & y + 1).Visible = True
Controls("Combobox" & y + 1).Visible = True
Label1.Caption = y + 1
Else: Exit For
End If
Next y
'ComboBox1 und TextBox1 immer auf True setzen !!
Controls("TextBox1").Visible = True
Controls("Combobox1").Visible = True
End Sub
Private Sub CommandButton2_Click() 'prüfen
Dim y As Long
'Rückwaerts Schleife für False mit Exit for bei Leerstand
For y = 4 To 2 Step -1
If Controls("TextBox" & y).Value = "" Or Controls("Combobox" & y).Value = "" Then
Controls("TextBox" & y + 1).Visible = False
Controls("Combobox" & y + 1).Visible = False
Label1.Caption = y
Else: Exit For
End If
Next y
End Sub
Private Sub UserForm_Initialize()
Dim lol As Long
Dim lx As Long
For lol = 1 To 5
With Controls("ComboBox" & lol)
.AddItem 1
.AddItem 2
End With
Next lol
For lol = 2 To 5
Controls("TextBox" & lol).Visible = False
Controls("ComboBox" & lol).Visible = False
Next lol
Label1.Caption = 1
End Sub

Anzeige
AW: Steuerelemente sichtbar oder unsichtbar
28.12.2017 00:59:57
Ludmila
Hallo Karin, hallo Piet,
vielen Dank für Eure Hilfe.
Bei dem ganzen handelt es sich um ein Abnahme-Formular (Bau). So kann es vorkommen, dass der Text, in den Textboxen immer gleich ist, jedoch in den ComboBoxen(Bauleiter oder Architekten) unterschiedlich ist.
Funktioniert zwar nicht ganz so wie ich es wollte, aber so ist es trotzdem gut.
Gruß, Ludmila
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Steuerelemente in Excel sichtbar oder unsichtbar schalten


Schritt-für-Schritt-Anleitung

Um die Sichtbarkeit von Steuerelementen in einem Excel-UserForm zu steuern, kannst Du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den Visual Basic-Editor:

    • Drücke ALT + F11, um den Editor zu öffnen.
  2. Füge ein UserForm hinzu:

    • Klicke mit der rechten Maustaste auf den Projektbaum und wähle Einfügen > UserForm.
  3. Platziere Steuerelemente:

    • Füge 5 TextBoxen und 5 ComboBoxen zu Deinem UserForm hinzu.
  4. Füge den VBA-Code ein:

    • Klicke doppelt auf das UserForm, um den Code-Editor zu öffnen.
    • Füge den folgenden Code ein, um die Sichtbarkeit der Steuerelemente zu steuern:
    Private Sub TextBox1_Change()
        TextBox2.Visible = TextBox1.Value <> "" And ComboBox1.Value <> ""
        ComboBox2.Visible = TextBox1.Value <> "" And ComboBox1.Value <> ""
    End Sub
    
    ' Füge ähnliche Subroutinen für TextBox2 bis TextBox5 und ComboBoxen hinzu
  5. Teste das UserForm:

    • Schließe den VBA-Editor und starte das UserForm, um die Sichtbarkeit der Steuerelemente zu prüfen.

Häufige Fehler und Lösungen

  • Fehler: Steuerelemente bleiben sichtbar
    Lösung: Überprüfe, ob die Sichtbarkeitsbedingungen korrekt implementiert sind und ob der Code für jede TextBox und ComboBox geschrieben wurde.

  • Fehler: UserForm startet nicht
    Lösung: Stelle sicher, dass das UserForm korrekt im VBA-Modul aufgerufen wird, z.B. mit UserForm1.Show.


Alternative Methoden

Wenn Du keine VBA-Programmierung verwenden möchtest, kannst Du auch die Datenüberprüfung in Excel verwenden, um die Eingaben in den TextBoxen und ComboBoxen zu steuern. Dies ist zwar weniger flexibel, aber für einfache Anwendungen ausreichend.


Praktische Beispiele

Ein praktisches Beispiel zur Sichtbarmachung von Steuerelementen könnte ein Abnahmeformular im Bauwesen sein. Hier werden bestimmte TextBoxen für die Eingabe von Daten wie Bauleiter oder Architekt verwendet, während ComboBoxen für die Auswahl von Optionen dienen. Der VBA-Code stellt sicher, dass die Sichtbarkeit der Steuerelemente dynamisch angepasst wird, je nachdem, ob die vorherigen Eingaben vorhanden sind.

Private Sub CommandButton1_Click()
    ' Beispielcode um Steuerelemente sichtbar zu machen
    If TextBox1.Value <> "" Then
        TextBox2.Visible = True
        ComboBox2.Visible = True
    End If
End Sub

Tipps für Profis

  • Verwende Option Explicit: Dies hilft, Fehler durch nicht deklarierte Variablen zu vermeiden.
  • Kommentiere Deinen Code: Eine klare Dokumentation erleichtert es, später Änderungen vorzunehmen.
  • Teste regelmäßig: Teste Deine Änderungen häufig, um sicherzustellen, dass die Logik funktioniert.

FAQ: Häufige Fragen

1. Wie kann ich die Sichtbarkeit von mehreren Steuerelementen gleichzeitig ändern?
Du kannst eine Schleife verwenden, um alle gewünschten Steuerelemente in einer Subroutine zu steuern.

2. Funktioniert das auch in Excel 365?
Ja, der beschriebene VBA-Code funktioniert in allen modernen Excel-Versionen, einschließlich Excel 365.

3. Was kann ich tun, wenn der Code nicht funktioniert?
Überprüfe, ob Du den Code korrekt in das richtige UserForm eingefügt hast und ob die Steuerelemente die richtigen Namen haben.

4. Kann ich die Sichtbarkeit auch über Formeln steuern?
Formeln können nicht direkt die Sichtbarkeit von Steuerelementen steuern, aber Du kannst die Sichtbarkeit über die Verknüpfung von Steuerelementen mit Zellen beeinflussen.

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