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

Forumthread: Dropdown Auswahlmenü statt Input Box

Dropdown Auswahlmenü statt Input Box
29.11.2012 09:32:28
Ralf
Hallo Forum,
ich habe folgende Arbeitsmappe:

Die Datei https://www.herber.de/bbs/user/82813.xlsm wurde aus Datenschutzgründen gelöscht


Ich habe nun eine Zielwertabfrage mit Makro eingebaut. Nun soll nach Start des Makros in dem ersten Einagbefenster (Abfrage nach der Ausbringung) nicht eine Direkteingabe erfolgen, sondern es soll über eine eine Werkstoffliste (Dropdown) aus der Tabelle 2 die Ausbringung ermöglichen. Wenn Tabelle 2 Zelle B4 ausgewählt wird (also kein Werkstoff), dann soll die Möglichkeit gegeben sein, die Ausbringung in Prozent direkt eingegeben werden können.
Kann mir da bitte jemand helfen, dieses Fenster umzubauen?
Vielen Dank im Voraus.
Viele Grüße
Ralf

Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dropdown Auswahlmenü statt Input Box
29.11.2012 10:37:09
Klaus
Hallo Ralf,
du passt das alles eh noch an deine eigene Datei an, richtig? Probier mal:

Die Datei https://www.herber.de/bbs/user/82814.xlsm wurde aus Datenschutzgründen gelöscht


Funktioniert, hübsch machen musst dus selber :-)
Grüße,
Klaus M.vdT.

Anzeige
AW: Dropdown Auswahlmenü statt Input Box
29.11.2012 10:44:50
Ralf
Hallo Klaus,
vielen Dank für die schnelle Hilfe.
hm, bei mir geht's nicht.
Folgendes:
Zum Auswahlfenster der Zielwertsuche:
1. Die Ausbringung in Prozent wird nicht nach B2 übertragen (da wird für mich nicht nachvollziehbares reingeschrieben).
2. Ich habe keine Wildcard, soll heißen es ist dem user nicht möglich andere Werte einzugeben.
3. Nach Auswahl des Werkstoffs und Click auf OK "verschwindet" das Fenster nicht.
Die Zielwertsuche funktioniert nicht mehr wie in der ursprünglichen Datei.
Kannst Du das bitte nochmal prüfen?
Vielen Dank im Voraus.
Viele Grüße
Ralf

Anzeige
AW: Dropdown Auswahlmenü statt Input Box
29.11.2012 13:49:02
Klaus
Achso, hier gehts weiter :-)
Überarbeitet:
https://www.herber.de/bbs/user/82816.xlsm
3. Nach Auswahl des Werkstoffs und Click auf OK "verschwindet" das Fenster nicht.
doch, aber der Bildschirm wird nicht aktualisert. Nach Auswahl der beiden Inputboxen ist es weg.
Die Zielwertsuche funktioniert nicht mehr wie in der ursprünglichen Datei.
Das kann ich nicht beurteilen. Ich hab ja auch keinen blassen schimmer, was deine Formeln da machen und was rauskommen soll.
Grüße,
Klaus M.vdT.
PS: ich würd mir an deiner Stelle ja überlegen, die zweite und dritte Inputbox rauszuwerfen und auch diese Zahlen in eine Textbox in der Userform zu übernehmen. Warum drei Fenster wenn 1 reicht?

Anzeige
AW: Dropdown Auswahlmenü statt Input Box
29.11.2012 14:22:23
Ralf
Hallo Klaus,
warum 3 Fenster?
Weil ich es nur so kann! Ich schaffe es nicht, dass in ein Fenster zu packen. Dafür reichen meine Kenntnisse nicht. Ich werde es aber mal ausprobieren, ob ich es mit Deinem Muster nicht irgendwie hinbekomme.
Jetzt funktioniert es aber wie gewünscht.
Vielen Dank für Deine Hilfe.
Viele Grüße
Ralf

Anzeige
Danke für die Rückmeldung! Mit Text!
29.11.2012 15:16:26
Klaus
Hi,
dann frohes gelingen!
Ich würde das so machen (Pseudoablauf):
- die Inputboxen auskommentieren
- zwei Textfelder in der Userform erstellen
- zwei Labels in der Userform erstellen, die die Textfelder beschreiben
- das ganze so hinziehen dass es hübsch ist (Label direkt über Textfeld)
- die Textfelder in den "Properites" einen vernünftigen Namen geben (zB: Textbox_Wert2)
- ganz unten in deinem Code den Wert aus der Textbox übernehmen statt aus der Wertvariable
(statt Range("A2")=Wert2 schreibst du Range("A2").value = UserForm1.TextBox_Wert2.text)
Wenn du durch meinen Beitrag motiviert wurdest, mit eigenen Userformen anzufangen freue ich mich! Bitte gewöhne dir gleich von Anfang an, jedem Item immer einen aussagekräftigen Namen zu geben (rechtslick, Eigenschaften, Name). Sonst fragst du dich irgendwann, was genau denn jetzt Label32789 sein soll ... :-)
Grüße,
Klaus M.vdT.
PS: Wenn du noch Hilfe brauchst, meld dich kurz.

Anzeige
AW: Danke für die Rückmeldung! Mit Text!
29.11.2012 15:23:03
Ralf
Hallo Klaus,
ich werde es probieren. Du hast mich in der Tat neugierig gemacht. Da ich aber blutiger Anfänger in diesen Dingen bin, wird es nicht ganz einfach für mich.
Ich habe die Zielwertsuche gerade bei einem Kollegen probiert.
Es erscheint ein Laufzeitfehler 9.
Beim Debuggen wird die Zeile mit "Set Solver..." markiert.
Weißt Du wie ich das abstelle?
Viele Grüße
Ralf

Anzeige
AW: Danke für die Rückmeldung! Mit Text!
29.11.2012 15:58:50
Klaus
Hi,
kann ich nichts zu sagen, bei mir funktionierts ja (und bei dir auch).
Ist der "Solver" bei deinem Kollegen denn aktiviert? Da muss man irgendwo einen Haken setzen, aber frag mich nicht wo ...
Grüße,
Klaus M.vdT.

AW: Danke für die Rückmeldung! Mit Text!
29.11.2012 16:04:47
Ralf
Hallo Klaus,
den Haken haben wir gesetzt. Geht bei ihm trotzdem nicht.
Excel Optionen => Add-Ins => Gehe zu => Solver Haken setzen
Es ist immer wieder merkwürdig......
Das andere werde ich heute Abend mal in Ruhe zu Hause probieren. Ich werde mich morgen wieder melden.
Viele Grüße
Ralf

Anzeige
nun gibts Solver Probleme
30.11.2012 08:21:07
Ralf
Hallo Klaus,
ich habe es geschafft, die Datei umzubauen. Klappt alles wunderbar.
Deinen Hinweis mit den Labels habe nicht verstanden.
Was ist das und was bewirken die Labels?
Die gößten Probleme hatte ich gestern Abend aber mit dem Solver. Im Büro haben wir Office 2007, zu Hause habe ich Office 2010. Zu Hause habe ich die gleiche Fehlermeldung bekommen, wie mein Kollege gestern Abend.
Folgendes konnte ich bislang eingrenzen:
'für Excel 2007 gilt dies:
Set Solv = AddIns("Solver Add-In")
If Solv.Installed = False Then
AddIns("Solver Add-in").Installed = True
End If
'für Excel 2010 gilt dies:
'AddIns("Solver").Installed = True
Kann man dies irgendwie kombinieren, dass immer die richtige Version angezogen wird?
Das scheint eine gößere Baustelle zu sein. Im Internet habe ich auch nur keine vernünftige Lösung gefunden.
Vielen Dank im Voraus für eine Rückmeldung.
Viele Grüße
Ralf

Anzeige
dafür bin ich leider ...
30.11.2012 10:26:30
Klaus
... nicht der Experte, Ralf, mit AddIns steh ich eher auf Kriegsfuss und mit den Bibliotheksverknüpfungen sowieso. Bitte stell diese Frage als neuen Beitrag ans Forum, da können dir andere besser helfen als ich.
Was ich mit den Labels meinte, war nur ein Beispiel. Generell: Vergib von Anfang an sinnvolle Namen. Wenn "Textbox1" die Ausbringung ist, nenn sie gleich "Textbox_Ausbringung". Wenn du in zwei Jahren in den Code schaust und da steht "Wert1 = Textbox_Ausbringung" weisst du gleich was Sache ist.
Grüße,
Klaus M.vdT.

Anzeige
AW: dafür bin ich leider ...
30.11.2012 10:30:36
Ralf
Hallo Klaus,
alles klar, ich mache ein neues Thema auf.
Mit den labels, das habe ich immer noch nicht verstanden.
Hauptsache ist, die Berechnung funktioniert, dank Deiner Hilfe.
Viele Grüße
Ralf

AW: Dropdown Auswahlmenü statt Input Box
29.11.2012 10:49:58
Ralf
Hallo Klaus,
die fehlerhafte Berechnung konnte ich korrigieren.
Du hast "Wert1 = Tabelle1.Range("A2")" eingegeben. Es muss natürlich "Wert1 = Tabelle2.Range("A2")" heißen.
Bei dem Rest musst Du mir bitte nochmal helfen.
Viele Grüße
Ralf

Anzeige
AW: Dropdown Auswahlmenü statt Input Box
29.11.2012 11:07:15
Klaus
Bei dem Rest musst Du mir bitte nochmal helfen.
Rest? Was ist denn noch?
Grüße,
Klaus M.vdT.

AW: Dropdown Auswahlmenü statt Input Box
29.11.2012 12:13:17
Ralf
Hallo Klaus,
ich habe noch eine Nachricht verfasst:
https://www.herber.de/forum/messages/1288552.html
Die Optik mache ich selber. Kein problem.
Viele Grüße
Ralf
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Dropdown Auswahlmenü in Excel VBA erstellen


Schritt-für-Schritt-Anleitung

Um ein Dropdown-Auswahlmenü anstelle einer Input Box in Excel VBA zu erstellen, folge diesen Schritten:

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues UserForm:

    • Klicke mit der rechten Maustaste auf dein Projekt im Projektfenster, wähle Einfügen und dann UserForm.
  3. Füge ein Dropdown-Menü hinzu:

    • Ziehe eine ComboBox aus der Toolbox auf dein UserForm.
  4. Füge Textfelder hinzu (optional):

    • Falls du zusätzliche Eingaben benötigst, füge TextBoxen hinzu.
  5. Fülle das Dropdown mit Werten:

    • Füge den folgenden Code in das UserForm-Modul ein, um die ComboBox mit Werten aus einer Liste in Tabelle 2 zu füllen:
    Private Sub UserForm_Initialize()
       Dim ws As Worksheet
       Set ws = ThisWorkbook.Sheets("Tabelle2")
    
       Me.ComboBox1.List = Application.Transpose(ws.Range("B1:B10").Value)
    End Sub
  6. Verwende die Eingaben:

    • Um die Werte aus dem Dropdown zu verwenden, füge einen Button hinzu und verwende den folgenden Code, um die ausgewählte Ausbringung in eine Zelle zu schreiben:
    Private Sub CommandButton1_Click()
       If Me.ComboBox1.Value = "" Then
           MsgBox "Bitte wähle einen Werkstoff aus."
           Exit Sub
       End If
       Sheets("Tabelle1").Range("A2").Value = Me.ComboBox1.Value
       Unload Me
    End Sub
  7. Starte das UserForm:

    • Um das UserForm zu starten, kannst du im Hauptmodul den folgenden Code verwenden:
    Sub ShowUserForm()
       UserForm1.Show
    End Sub

Häufige Fehler und Lösungen

  1. Dropdown bleibt leer:

    • Stelle sicher, dass die Zellreferenz im Code korrekt ist und die Zellen in Tabelle 2 tatsächlich Werte enthalten.
  2. Werte werden nicht übernommen:

    • Überprüfe den Code im CommandButton, um sicherzustellen, dass die Zelle, in die geschrieben wird, korrekt referenziert ist.
  3. UserForm schließt nicht:

    • Vergewissere dich, dass Unload Me im Click-Event des Buttons vorhanden ist.

Alternative Methoden

  • Data Validation für Dropdown: Du kannst auch die Datenvalidierung in Excel verwenden, um Dropdown-Listen in Zellen zu erstellen, ohne VBA zu verwenden. Gehe zu Daten > Datenüberprüfung > Liste und gib den Bereich ein.

  • Formulare in HTML: Wenn du mehr über HTML-Formulare und Dropdowns lernen möchtest, kannst du dir den form html dropdown anschauen, um zu verstehen, wie Dropdowns in Webanwendungen funktionieren.


Praktische Beispiele

  • Beispiel 1: Dropdown zur Auswahl von Werkstoffen.
  • Beispiel 2: Kombination von Dropdown und Textbox für zusätzliche Eingaben.
Private Sub UserForm_Initialize()
    Me.ComboBox1.List = Array("Werkstoff A", "Werkstoff B", "Werkstoff C")
End Sub

Tipps für Profis

  • Sinnvolle Namen vergeben: Vergib aussagekräftige Namen für deine TextBoxen und ComboBoxen, um den Überblick zu behalten.

  • Fehlerbehandlung einfügen: Implementiere Fehlerbehandlung, um unerwartete Probleme während der Ausführung zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich ein Dropdown mit einer InputBox kombinieren?
Du kannst die Logik des Dropdowns in eine InputBox integrieren, indem du die ausgewählten Werte in der InputBox filterst.

2. Wie kann ich die Dropdown-Werte dynamisch ändern?
Aktualisiere den Code in UserForm_Initialize, um die Werte aus einer Datenquelle zu laden, die sich ändern kann.

3. Was ist der Unterschied zwischen ComboBox und ListBox?
Eine ComboBox erlaubt sowohl die Auswahl aus einer Liste als auch die direkte Eingabe von Werten, während eine ListBox nur die Auswahl aus der Liste ermöglicht.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige