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

Dropdown-Auswahlliste in VBA

Forumthread: Dropdown-Auswahlliste in VBA

Dropdown-Auswahlliste in VBA
10.04.2008 16:57:26
Sebastian
Hallo,
leider werd ich aus den ganzen Posts nicht schlau (wahrscheinlich such ich auch nach den falschen Begriffen).
Ich möchte eine Dropdown-Auswahlliste (beim Erstellen eines neuen Sheets) mit dem Werten von Sheet A (Werte in A1:A20) erstellen. Diese Liste soll bei dem neuerstellen Worksheet an der Position E3 stehen.
Vielen Dank im Voraus!
Gruss,
Sebastian

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Dropdown-Auswahlliste in VBA
10.04.2008 18:19:00
Beverly
Hi Sebastian,
ich hoffe, ich habe richtig verstanden, dass du ein DropDown-Listenfeld aus Daten Gültigkeit erstellen willst? Zeichne den Code mit dem Makrorekorder auf.
Du musst allerdings beachten, dass bei einem DropDown-Listenfeld aus Daten Gültigkeit kein direkter Bezug auf andere Arbeitsblätter genommen werden darf. Verwende also einen definierten Bereichsnamen als Quelle.


Anzeige
Daten - Gültigkeit in neues Blatt einfügen
10.04.2008 18:22:12
NoNet
Hallo Sebastian,
das von Dir gesuchte Feature nennt sich "Gültigkeitsprüfung" und befindet sich bis Excel 2003 im Menü "Daten - Gültigkeit - Zulassen: Liste - Quelle: Bereich".
Damit Du eine Dropdown-Auswahlliste in einem Tabellenblatt erhältst, die mit Werten aus einem anderen Tabellenblatt gefüllt ist, musst Du dem Bereich im Quellblatt (bei Dir also Blatt "A") einen Namen vergeben :
- Bereich im Quellblatt markieren
- Strg+F3 drücken
- Einen Namen vergeben (z.B. "NamenAusA")
- mit "Hinzufügen" und "OK" bestätigen
Ohne diesen Namen funktioniert das grundsätzlich nicht in einem externen Tabellenblatt !
Nun folgt die eigentliche Beantwortung Deiner Frage :
Per VBA kannst Du auf neu erstellte Tabellenblätter reagieren, indem du im Klassenmodul "DieseArbeitsmappe" das Ereignismakro "Workbook_NewSheet" erstellst.
Füge also folgendes Makro in das Klassenmodul "DieseArbeitsmappe" ein :
'Dieser Code muss in das Klasenmodul "DieseArbeitsmappe" im VBA-Editor !
'10.04.2008, NoNet - www.excelei.de
Private Sub Workbook_NewSheet(ByVal Sh As Object)
    If Sh.Type = xlWorksheet Then 'Gültigkeit nur für neue Tabellenblätter erstellen !
        With Sh
            With [E3].Validation 'Gültigkeit in neuem Blatt in Zelle E3 erstellen
                .Delete 'nur prophylaktisch : Bestehende Gültigkeit löschen
                .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                xlBetween, Formula1:="=NamenAusA" 'NamenAusA muss in Blatt "A" definiert sein !
                .IgnoreBlank = True
                .InCellDropdown = True
                .InputTitle = "Bitte Wert auswählen" 'Eingabemeldung kann auch gelöscht werden
                .ErrorTitle = "Ungültige Eingabe !"
                .InputMessage = "Bitte Wert aus A!A1:A10 auswählen" 'Erscheint bei Falscheingabe
                .ErrorMessage = "Bitte einen gültigen Wert aus der Liste auswählen !"
                .ShowInput = True
                .ShowError = True
            End With
        End With
    End If
End Sub
Es wird im neuen Tabellenblatt in Zelle E3 eine Gültigkeit definiert mit Bezug auf den Bereichsnamen "NamenAusA", der dazu wie oben beschrieben definiert sein muss.
ACHTUNG : Wenn Du (z.B. per gruppierten Tabellenblättern) mehrere Tabellenblätter GELICHZEITIG einfügst, dann reagiert dieses Makro nur auf das ERSTE dieser eneuen tabellenblätter, daher wird diese Gültigkeit auch nur im ERSTEN dieser Blätter eingefügt !!
Gruß, NoNet

Anzeige
AW: Daten - Gültigkeit in neues Blatt einfügen
11.04.2008 09:54:51
Sebastian
Perfekt!
Ich danke euch :)
Schönen Tag noch!!
;

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

Infobox / Tutorial

Dropdown-Auswahlliste in VBA erstellen


Schritt-für-Schritt-Anleitung

Um eine Dropdown-Auswahlliste in Excel mit VBA zu erstellen, folge diesen Schritten:

  1. Datenquelle vorbereiten: Stelle sicher, dass die Werte für die Dropdown-Liste in einem bestimmten Bereich auf einem Arbeitsblatt (z.B. A1:A20 auf Blatt A) vorhanden sind.

  2. Namen für den Bereich vergeben:

    • Markiere den Bereich der Werte.
    • Drücke Strg + F3, um den Namen-Manager zu öffnen.
    • Vergib einen Namen (z.B. NamenAusA) und klicke auf "Hinzufügen", dann auf "OK".
  3. VBA-Editor öffnen: Drücke Alt + F11, um den VBA-Editor zu öffnen.

  4. Ereignismakro erstellen:

    • Wähle im Projekt-Explorer "DieseArbeitsmappe".
    • Füge das folgende Makro ein:
    Private Sub Workbook_NewSheet(ByVal Sh As Object)
       If Sh.Type = xlWorksheet Then
           With Sh
               With [E3].Validation
                   .Delete ' Bestehende Gültigkeit löschen
                   .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=NamenAusA"
                   .IgnoreBlank = True
                   .InCellDropdown = True
                   .InputTitle = "Bitte Wert auswählen"
                   .ErrorTitle = "Ungültige Eingabe!"
                   .InputMessage = "Bitte Wert aus A!A1:A20 auswählen"
                   .ErrorMessage = "Bitte einen gültigen Wert aus der Liste auswählen!"
                   .ShowInput = True
                   .ShowError = True
               End With
           End With
       End If
    End Sub
  5. Speichern und schließen: Speichere das Workbook als Makro-aktivierte Datei und schließe den VBA-Editor.

  6. Neues Arbeitsblatt erstellen: Erstelle ein neues Arbeitsblatt, um die Dropdown-Auswahlliste in Zelle E3 anzuzeigen.


Häufige Fehler und Lösungen

  • Dropdown funktioniert nicht: Stelle sicher, dass der Bereichsname korrekt definiert ist und dass der Bezug auf das andere Arbeitsblatt funktioniert.

  • Makro wird nicht ausgeführt: Überprüfe, ob das Makro im richtigen Klassenmodul (DieseArbeitsmappe) eingefügt wurde.

  • Gültigkeitsprüfung bei mehreren Arbeitsblättern: Beachte, dass bei gleichzeitiger Erstellung mehrerer Blätter das Makro nur auf das erste Blatt reagiert.


Alternative Methoden

Falls du kein VBA verwenden möchtest, kannst du auch die Daten-Gültigkeit über die Benutzeroberfläche erstellen:

  1. Wähle die Zelle aus (z.B. E3).
  2. Gehe zu Daten > Gültigkeit.
  3. Wähle Liste und gebe als Quelle den Bereich ein: A1:A20 (für das aktuelle Blatt) oder =NamenAusA (für einen definierten Namen).

Praktische Beispiele

  • Beispiel 1: Erstelle eine Dropdown-Liste für die Auswahl von Produkten in einem Verkaufsbericht.
  • Beispiel 2: Implementiere eine Dropdown-Auswahl für Kategorien in einem Budget-Tracker.

Tipps für Profis

  • Nutze die InputMessage, um den Nutzern klare Anweisungen zu geben.
  • Verwende die ErrorMessage, um dem Nutzer zu helfen, Fehler zu vermeiden.
  • Experimentiere mit weiteren Validierungsoptionen in VBA, um die Nutzererfahrung zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich eine Dropdown-Liste in mehreren Zellen gleichzeitig erstellen?
Du kannst ein Makro aufzeichnen, während du eine Dropdown-Liste in einer Zelle erstellst, und es dann anpassen, um die gewünschten Zellen zu durchlaufen.

2. Kann ich die Auswahl der Dropdown-Liste dynamisch ändern?
Ja, du kannst ein weiteres Makro schreiben, das die Quelle der Dropdown-Liste aktualisiert, wenn sich die Daten auf dem Arbeitsblatt ändern.

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