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

Forumthread: Listboxauswahl vorbelegen

Listboxauswahl vorbelegen
22.02.2013 21:09:06
EarnyToLearny
Hallo Excel-Freunde,
ich habe eine Listbox, die Werte aus einer mit Namen versehenen Liste vergibt. Diese Werte ändern sich je nach Auswahl mit einer weiteren Listbox. (z.B. Auswahl in Listbox1 ist A, dann folgen in Listbox2 die Werte 1000,1100,1200,1300 bis 2000, Auswahl in Listbox1 ist B, dann folgen in Listbox2 die Werte 2000,2100,2200 bis 3000).
Problem: ich hätte gerne, dass je nach Auswahl der Listbox1 immer ein festgelegter Wert in der Listbox 2 angezeigt wird.
Beispiel: Auswahl in Listbox1 ist A, dann soll in Listbox2 der Wert 1500 vorbelegt werden und wenn in Listbox1 ist B, dann soll in Listbox2 der Wert 2500 vorbelegt werden.
Da ich nicht weiß, nach welchem Begriff ich hier im Forum suchen soll, habe ich auch nichts gefunden.
Vielleicht, kann mir jemand auf die Sprünge helfen. Vielen Dank.
Werner

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Listboxauswahl vorbelegen
23.02.2013 08:48:44
Oberschlumpf
Hi Werner
Vielleicht so?
If Listbox1.Text = "A" Then Listbox2.Text = "1500"
If Listbox1.Text = "B" Then Listbox2.Text = "2500"
Dieses Bsp setzt aber voraus, dass in Listbox2 schon alle Einträge vorhanden sind.
Und achte bitte auf die richtige Referenzierung.
Du schreibst ja nicht, ob die Listboxes in einem Userform oder in einem Tabellenblatt stehen.
Hilfts?
Ciao
Thorsten

Anzeige
AW: Listboxauswahl vorbelegen
23.02.2013 14:08:26
EarnyToLearny
Hallo Thorsten,
die Listboxen wurden im Tabellenblatt erstellt (Daten-Gültigkeit-Liste). Somit kann ich mit deinem Vorschlag nichts anfangen.
Ich habe mal eine Minidatei hochgeladen.
Gruß Werner
https://www.herber.de/bbs/user/84027.xls

Anzeige
AW: Listboxauswahl vorbelegen
23.02.2013 15:11:15
Oberschlumpf
Hi Werner
a) du hast recht. Bei Gültigkeitslisten hilft .text nicht viel
b) haste aber auch selbst schuld, dass der erste Eintrag dir nicht hilft.
Wer eine qualifizierte Antwort erwartet/erhofft, muss eine qualifizierte Frage stellen.
Mit anderen Wörtern:
Wärst du in deiner Erstfrage nicht so schreibfaul gewesen und hättest gleich sofort erwähnt, um welche Art von COMBObox es sich handelt (sind ja gar keine Listboxen, wie du erwähnt hattest), dann hätte zumindest ich eine andere Lösung vorgeschlagen.
Vielleicht denkst du jetzt "Aber woher soll ich denn wissen, dass diese Info wichtig ist?"
Nun ja, nur du kennst deine Tabelle (wenn du sie uns nicht zeigst, was im ersten Fall so war)
Nun ja, du hattest eine Frage ohne Antwort. Dann solltest du erst recht alle Infos erwähnen, die auch nur vielleicht wichtig/interessant sind...für die Antwortwilligen.
Aber sei getrost, du bist nur einer aus den Heerscharen derer, die sich beim Fragen nicht sooo viele Gedanken machen ;-)
Und ich werde noch nicht müde, immer wieder darauf hinzuweisen, dass mitunter zum Antworten mehr Infos wichtig sind, als man hin und wieder nur zu lesen bekommt.
Das alles mit der Hoffnung, dass vielleicht schon die erste Antwort nicht umsonst war...
Nun aber zu meinem 2. Antwortversuch.
Versuch es mal hiermit:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$3" Then
If Target.Value = "A" Then Range("B6").Value = 800
If Target.Value = "B" Then Range("B6").Value = 1400
End If
End Sub
Hilfts?
Ciao
Thorsten

Anzeige
AW: Listboxauswahl vorbelegen
23.02.2013 23:04:09
EarnyToLearny
Hallo Thorsten,
erstmal danke für Deine Mühe. Ja Du hast recht, da war ich zu schreibfaul. Was eigentlich nicht sein dürfte, denn wenn man Hilfe wünscht, dann sollte man schon das so rüber bringen, dass das Gegenüber es auch versteht.
Aber wie das so ist am Freitag abend - da sitzt Du vor einer Datei die nicht funzt, knallst Dir noch einen Rotwein rein (2 waren es schon) und dann passiert das. Sorry.
Die Lösung von Dir funktioniert. Aber jetzt kommt noch was dazu. Das gleiche muss ich noch in eine andere Tabelle einbauen. Nur hier kommt das "A" oder "B" aus einer Doppdownbox (aus Formular erstellt). Wenn ich nun die Target.Adress (z.B. X4) als Ausgabe ansteuere passiert gar nix. Gebe ich das "A" oder das "B" mit Hand ein, dann geht es. Ich habs dann mit "Calculate" probiert, dann kommt Fehlermeldung. Liegt das daran, weil ich das schon auf der Tabelle habe?
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$X$4" Then
If Target.Value = "A" Then Range("I15").Value = 800
If Target.Value = "B" Then Range("I15").Value = 2200
End If
End Sub
Private Sub Worksheet_Calculate()
Application.ScreenUpdating = False
Me.Shapes("Dropdown 20").Visible = Range("X21") = 1
Application.ScreenUpdating = True
End Sub
Gruß Werner

Anzeige
AW: Listboxauswahl vorbelegen
24.02.2013 08:56:17
Oberschlumpf
Moin Werner,
eine Bsp-Datei mit deinem neuen Problem wäre zumindest für mich schöner gewesen.
(ich lese UND sehe lieber ein Problem, als dass ich es nur lesen kann)
Ich hab versucht, eine Datei mit einer DropDownliste (du meinst doch Combobox, oder?) nachzubauen, bin aber leider gescheitert.
Na ja, in diesem Fall war es meine Faulheit, die mich scheitern ließ.
Du schreibst, du verwendest ein Objekt aus der Symbolleiste "Formular" - so hab ich es zumindest verstanden.
Ich machte aber schon früher die Erfahrung, dass sich Objekte aus "Formular" mit VBA nur etwas umständlich steuern lassen.
Ich empfehle dir die Symbolleiste "Steuerelement-Toolbox" (rechte Maustaste auf eine beliebige Symbolleiste in Excel, dann mit links auswählen)
Objekte aus "Steuerelement-Toolbox" lassen sich nämlich mit VBA genau so steuern, als ob du ein Userform erstellst - vieleicht sind es ja genau die gleichen Objekte, die aber eben in einem Tabellenblatt platziert sind.
Nun denn, schau dir mal diese Datei an:
https://www.herber.de/bbs/user/84033.xls
Beim Start wird die Combobox mit "A" + "B" gefüllt.
Wenn du nun "A" oder "B" auswählst, ändert sich der Wert in D3 entsprechend.
Hilfts?
Ciao
Thorsten

Anzeige
AW: Listboxauswahl vorbelegen
24.02.2013 12:49:44
EarnyToLearny
Hallo Thorsten,
also erstmal - es funktioniert. Danke.
Ich habe dabei Deinen Rat befolgt und alle im Formular erstellten Dropdownboxen durch die über Steuerelemente-Toolbox ersetzt. Da tun sich dann völlig neue Möglichkeiten auf. Vielen Dank.
Gruß Werner

AW: Listboxauswahl vorbelegen
23.02.2013 15:29:46
Oberschlumpf
Hi Werner
Anstelle von nur Code, der bei richtiger Verwendung zwar auch funktioniert, hätte ich dir auch gleich die Datei (zurück)schicken können.
Hier ist sie:
https://www.herber.de/bbs/user/84028.xls
Hilfts?
Ciao
Thorsten
Anzeige
;
Anzeige

Infobox / Tutorial

Listboxauswahl in Excel vorbelegen


Schritt-für-Schritt-Anleitung

Um eine Listboxauswahl in Excel vorbelegen zu können, kannst du den folgenden VBA-Code verwenden. Dieser Code sorgt dafür, dass beim Ändern der Auswahl in einer Listbox (z.B. Listbox1) automatisch ein bestimmter Wert in einer anderen Listbox (z.B. Listbox2) angezeigt wird.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul ein, indem du mit der rechten Maustaste auf "VBAProject (DeineDatei)" klickst und "Einfügen" > "Modul" auswählst.

  3. Kopiere den folgenden Code in das Modul:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Address = "$B$3" Then
           If Target.Value = "A" Then Range("B6").Value = 1500
           If Target.Value = "B" Then Range("B6").Value = 2500
       End If
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Teste die Auswahl in der Listbox, um zu sehen, ob der Wert in der angegebenen Zelle vorbelegt wird.


Häufige Fehler und Lösungen

  • Fehler: Der Wert wird nicht aktualisiert.

    • Lösung: Stelle sicher, dass die Zellreferenzen im Code korrekt sind und dass die Zelle, die die Auswahl enthält, tatsächlich geändert wird.
  • Fehler: Der Code funktioniert nicht in einer Dropdown-Box.

    • Lösung: Wenn du eine Dropdown-Box aus der Formular-Symbolleiste verwendest, kann es notwendig sein, den Code anzupassen. Es wird empfohlen, die Steuerelemente aus der Steuerelement-Toolbox zu verwenden, da diese besser mit VBA zu steuern sind.

Alternative Methoden

Eine Alternative zur Verwendung von VBA ist die Verwendung von Datenvalidierung:

  1. Wähle die Zelle aus, in der die Dropdown-Liste erscheinen soll.
  2. Gehe zu Daten > Datenüberprüfung.
  3. Wähle Liste und gib die Werte ein, die in der Dropdown-Liste erscheinen sollen.
  4. Füge eine Formel hinzu, um den Standardwert basierend auf der Auswahl zu ändern.

Diese Methode bietet jedoch weniger Flexibilität als die Verwendung von VBA.


Praktische Beispiele

Hier sind einige Beispiele, die dir helfen, die Listboxauswahl in Excel besser zu verstehen:

  • Beispiel 1: Wenn du in einer Listbox "A" auswählst, wird automatisch der Wert 1500 in die Zelle B6 eingetragen.

  • Beispiel 2: In einer anderen Tabelle wird bei Auswahl von "B" der Wert 2500 in die Zelle I15 eingetragen. Der Code könnte so aussehen:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Address = "$X$4" Then
           If Target.Value = "A" Then Range("I15").Value = 800
           If Target.Value = "B" Then Range("I15").Value = 2200
       End If
    End Sub

Tipps für Profis

  • Verwende die Steuerelement-Toolbox für mehr Flexibilität und Kontrolle über Steuerelemente in Excel.
  • Stelle sicher, dass alle benötigten Steuerelemente korrekt referenziert sind, um Fehler zu vermeiden.
  • Nutze Option Explicit am Anfang deiner Module, um sicherzustellen, dass alle Variablen deklariert werden, was die Fehlersuche erleichtert.

FAQ: Häufige Fragen

1. Wie kann ich den Standardwert einer Dropdown-Liste ändern?
Du kannst den Standardwert über VBA ändern, indem du den Wert in der entsprechenden Zelle anhand der Auswahl eines anderen Steuerelements änderst.

2. Ist es möglich, mehrere Listboxen miteinander zu verknüpfen?
Ja, du kannst mehrere Listboxen so konfigurieren, dass die Auswahl in einer Listbox die verfügbaren Optionen in einer anderen beeinflusst. Verwende dafür entsprechende VBA-Logik.

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