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

Forumthread: dropdown ausblenden wenn

dropdown ausblenden wenn
30.01.2013 00:19:15
EarnyToLearny
Hallo Excelfreunde,
vorweg: alle Dropdown-Felder wurden über "Formular" erstellt.
In Tabelle 1 wähle ich aus einer Dropdownbox den Wert "ja" oder "nein".
In Tabelle 2 wird bei "ja" der Wert 1 und bei "nein" der Wert 0 in Zelle R26 eingetragen.
In Tabelle 2 befindet sich eine weitere Dropdownbox (Dropdown11) die bei Wert 1 angezeigt und bei Wert 0 ausgeblendet werden soll. dafür verwende ich folgendes:
  • Option Explicit
    Private Sub Worksheet_Change(ByVal Target As Range)
    Application.ScreenUpdating = False
    Me.Shapes("Dropdown11").Visible = Range("R26") = 1
    Application.ScreenUpdating = True
    End Sub
    

  • Der Code steht in Tabelle 2. Es tut sich aber nix. Wird der Wert manuell von Hand eingetragen, dann geht das. Wo liegt hier der Fehler?
    Vielen Dank für die Hilfe.
    Gruß Werner

    Anzeige

    7
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    Natürlich genau so, ...
    30.01.2013 00:48:52
    Luc:-?
    …Werner;
    „Wird der Wert manuell von Hand eingetragen, dann geht das.“; denn nichts Anderes meint Worksheet_Change! Mit einem statischen Eintrag hat das nichts im Sinn. Falls die Dropdown-Shapes normalerweise sofort angezeigt wdn, könnte Wsh_Activate bzw Workbook_Open das richtige Ereignis sein.
    Falls die Dropdowns aber durch etwas Anderes ausgelöst wdn, muss die Range-Abfrage in den Auslösemechanismus bzw, wenn das nicht möglich ist, das Problem anders gelöst wdn.
    Gruß Luc :-?

    Anzeige
    AW: Natürlich genau so, ...
    30.01.2013 16:51:10
    EarnyToLearny
    Hallo Luc,
    vielen Dank für Deine Antwort. Habe den Befehl von Rudi "calculate" verwendet, was super klappt.
    Gruß Werner

    Ja, das fktioniert meist, ...
    30.01.2013 20:59:46
    Luc:-?
    …Werner,
    weil Xl idR stets irgendetwas auf dem aktuellen Blatt berechnet. Es könnte aber durchaus sein, dass eine andere Vorgehensweise im konkreten Fall optimaler wäre.
    Übrigens ist .Calculate zwar eine xlvbMethode, also quasi ein „Befehl“, Rudi hat aber das Ereignis Wsh_Calculate benutzt, um die Behandlungsprozedur unterzubringen. Das ist ein deutlicher Unterschied, denn Ersteres musst du selbst per Kommando veranlassen, Letzteres wird durch irgendwelche Berechnungen verursacht (die Proz läuft dann nach deren Abschluss)!
    Gruß Luc :-?

    Anzeige
    AW: Ja, das fktioniert meist, ...
    30.01.2013 22:58:32
    EarnyToLearny
    Hallo Luc,
    Deine Schilderung habe ich verstanden und was der Hintergrund ist. Das Ereignis Wsh_Calculate funktioniert genauso. Nun ist es bei mir so, dass alles was ich nicht rechts oben in der Auswahlbox im VBA-Generator (nennt man das so?) finde, für mich nicht existent ist.
    Das Forum hier ist ja schon eine große Hilfe, aber inzwischen habe ich mir eine kleine Datei angelegt, wo ich die Codes ablege und die Erklärungen dazu (wie hier) dazu schreibe.
    Es ist nicht selbstverständlich, dass wenn der User seine Anfrage beantwortet bekommen hat, dass dann nochmals jemand auch erklärt warum. Deshalb mal an dieser Stelle allen öfters auftauchenden Helfern ein herzliches Dankeschön.
    Gruß Werner

    Anzeige
    Danke sehr! ;-) Gruß owT
    31.01.2013 20:35:49
    Luc:-?
    :-?

    AW: dropdown ausblenden wenn
    30.01.2013 06:12:45
    Ass
    Hallo Werner,
    Private Sub Worksheet_Calculate()
    Me.Shapes("Dropdown11").Visible = Range("R26") = 1
    End Sub
    
    Eie machst du das, dass in R26 0 oder 1 eingetragen werden?
    Bei mir wird 1 oder 2 angezeigt.
    Gruß
    Rudi

    Anzeige
    AW: dropdown ausblenden wenn
    30.01.2013 16:49:40
    EarnyToLearny
    Hallo Rudi,
    das mit "calculate" war's und funktioniert einwandfrei. Vielen Dank.
    Zu Deiner Frage: ist eine Verweisabfrage kombiniert mit WENN.
    Gruß Werner
    ;

    Forumthreads zu verwandten Themen

    Anzeige
    Anzeige
    Anzeige
    Anzeige

    Infobox / Tutorial

    Dropdown in Excel ausblenden: So funktioniert's


    Schritt-für-Schritt-Anleitung

    1. Erstelle ein Dropdown-Feld: Gehe zu „Daten“ > „Datenüberprüfung“ und wähle „Liste“. Füge die gewünschten Werte hinzu (z.B. "ja" und "nein").

    2. Füge den VBA-Code hinzu: Öffne den VBA-Editor mit ALT + F11. Wähle das Arbeitsblatt, in dem sich dein Dropdown befindet, und füge folgenden Code ein:

      Private Sub Worksheet_Change(ByVal Target As Range)
         Application.ScreenUpdating = False
         Me.Shapes("Dropdown11").Visible = Range("R26") = 1
         Application.ScreenUpdating = True
      End Sub
    3. Verknüpfe das Dropdown mit einem Wert: Stelle sicher, dass das Dropdown-Feld in Zelle R26 den Wert 1 oder 0 anzeigt, abhängig von der Auswahl.

    4. Testen: Ändere die Auswahl in der Dropdown-Box. Der Dropdown wird ausgeblendet, wenn der Wert 0 ist, und angezeigt, wenn der Wert 1 ist.


    Häufige Fehler und Lösungen

    • Dropdown wird nicht angezeigt: Überprüfe, ob der Name des Dropdowns ("Dropdown11") im Code korrekt ist. Du kannst dies im Excel-Objektbereich im VBA-Editor überprüfen.

    • Änderungen werden nicht erkannt: Stelle sicher, dass dein Dropdown über die Datenüberprüfung erstellt wurde und nicht als „Formularsteuerung“. Die Worksheet_Change-Ereignisprozedur funktioniert nur mit Zellen, nicht mit Steuerelementen.

    • Wert wird nicht aktualisiert: Wenn der Wert manuell eingetragen wird und der Dropdown nicht reagiert, nutze das Worksheet_Calculate-Ereignis, um die Sichtbarkeit des Dropdowns zu steuern.


    Alternative Methoden

    Eine andere Methode, um ein Dropdown in Excel auszublenden, ist die Nutzung von Worksheet_Calculate. Hier ist ein Beispiel:

    Private Sub Worksheet_Calculate()
        Me.Shapes("Dropdown11").Visible = Range("R26") = 1
    End Sub

    Diese Methode aktualisiert das Dropdown automatisch, wenn Berechnungen im Arbeitsblatt durchgeführt werden.


    Praktische Beispiele

    • Dropdown ausblenden basierend auf einer Auswahl: Wenn du eine Auswahlbox in Excel (Dropdown) hast, und diese nur angezeigt werden soll, wenn ein bestimmter Wert (z.B. "ja") gewählt wird, kannst du die oben genannten Codes verwenden.

    • Verwendung von WENN-Funktionen: Du kannst auch eine WENN-Funktion in der Zelle verwenden, die das Dropdown steuert. Zum Beispiel:

      =WENN(A1="ja", 1, 0)

    Setze diese Formel in Zelle R26, um den Wert für das Dropdown zu steuern.


    Tipps für Profis

    • Verwende Namensbereiche: Um die Lesbarkeit deines Codes zu verbessern, verwende Namensbereiche für deine Dropdown-Werte. So wird der Code klarer und einfacher zu pflegen.

    • Fehlerbehandlung einbauen: Überlege, Fehlerbehandlungen in deinen VBA-Code einzufügen, um unerwartete Fehler zu vermeiden. Zum Beispiel:

      On Error Resume Next
      ' Dein Code hier
      On Error GoTo 0
    • Dokumentation: Halte in deiner Excel-Datei eine Dokumentation zu den verwendeten VBA-Codes und deren Funktionen bereit, um die Nachvollziehbarkeit zu gewährleisten.


    FAQ: Häufige Fragen

    1. Wie kann ich mehrere Dropdowns gleichzeitig steuern?
    Du kannst die Sichtbarkeit mehrerer Dropdowns im gleichen VBA-Code steuern, indem du mehrere Zeilen hinzufügst:

    Me.Shapes("Dropdown11").Visible = Range("R26") = 1
    Me.Shapes("Dropdown12").Visible = Range("R27") = 1

    2. Warum funktioniert mein Dropdown nicht, wenn ich es manuell ändere?
    Das Worksheet_Change-Ereignis wird nur ausgelöst, wenn Zellen über die Tastatur geändert werden. Wenn du eine Formel verwendest, musst du Worksheet_Calculate verwenden, um Änderungen zu erkennen.

    3. Was ist der Unterschied zwischen Worksheet_Change und Worksheet_Calculate?
    Worksheet_Change reagiert auf Änderungen in Zellen, während Worksheet_Calculate nach jeder Berechnung im Arbeitsblatt ausgeführt wird.

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige