Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
980to984
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
980to984
980to984
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

bedingte Listbox

bedingte Listbox
23.05.2008 17:33:41
Florian
Hallo liebes Forum,
wie kann ich eine Art bedingte Listbox erstellen wenn möglich ohne Makro.
Bsp:
Ich habe zwei Listboxen, in der ersten Liste stehen Fahrzeughersteller, in der zweiten Modellreihe, also z.B.:
Listbox 1:
Opel
Audi
Mercedes
Listbox 2:
Astra
Vectra
Omega
A3
A4
A6
C-Klasse
E-Klasse
S-Klasse
Der User soll nun zunächst aus Liste 1 den Herstelle auswählen. Hat er diesen gewählt, soll aber nicht mehr die ganze Liste kommen, sondern nur der mögliche Teil der Liste, also für den Hersteller "Opel" soll nur noch "Astra", "Vectra" und "Omega" auszuwählen sein. Wie mach ich das? Wenn-Funktion oder evt. noch einfacher?
Danke und Gruss,
Florian

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

Betreff
Datum
Anwender
Anzeige
AW: ohne VBA, unschön, aber geht..
23.05.2008 18:05:16
Christian
Servus Florian,
schau mal in die Beispieldatei. Ist m.E. allerdings nicht so schön, da die "Leerzeilen" unsortiert miteingelesen werden.
https://www.herber.de/bbs/user/52586.xls
Gruß
Christian

AW: bedingte Listbox
23.05.2008 18:56:54
Daniel
HI
in Listboxen würde ich sowas über Dynmamische Namen erledigen, die sich entsprechend der Auswahl in der Listbox1 entsprechend anpassen.
die benötigent Formeln sind
BEREICH.VERSCHIEBEN
VERGLEICH
ZÄHLENWENN
die Liste der Modelle muss entsprechend der Hersteller sortiert sein.
Gruß, Daniel
https://www.herber.de/bbs/user/52587.xls

Anzeige
AW: bedingte Listbox
23.05.2008 20:14:00
Florian
Hi zusammen,
erst mal Danke an beide! So ganz passt mir dass noch nicht:
Christian: Wie gehts denn mit VBA? Problem ist, dass das Sheet z.T. von Totallaien ausgefüllt wird. D.h. was würde denn z.B. passieren, wenn Makros nicht aktiviert werden?
Daniel: Könnte man das Auswahlfeld genau auf eine Zelle komprimieren (also genau so, wie bei Christian), oder wäre das schon wieder ein neues Steuerelement? Der Platz auf dem Formular ist begrenzt. Dumme Frage, aber mit den Controls nicht so aus.
Gruss
Florian

AW: bedingte Listbox
23.05.2008 20:45:02
Christian
Servus Florian,
keine aktivierten Makros bedeutet, keine Funktion. Man kann zwar den Anwender auf einige Arten zwingen Makros zu aktivieren, ist aber alles nicht 100%-ig sicher.
Gruß
Christian

Anzeige
AW: noch offen
23.05.2008 20:59:13
Christian
.

AW: Nachtrag
23.05.2008 21:09:14
Gerd
Hi,
ganz miese Lösung, weil die Mappe immer gespeichert wird, ob der User das will
oder nicht.
mfg Gerd

AW: bedingte Listbox
23.05.2008 21:33:00
Daniel
Hi
also ich nehme in diesem Fall Formularfelder, die sind weniger kompliziert als Steuerelemente, man muss halt mit dynamischen Namen umgehen können.
du kannst das genauso mit den Comboboxen der Formular-Felder machen, oder mit Gültigkeitslisten
ich persönlich würde die Comboboxen vorziehen, ggf auch die Gültigkeitslisten, da bist du aber noch stärker eingeschrängt (z.B. werden maximal 8 Felder angezeigt, dann muss geschrollt werden, bei den Comboboxen kannst du die grösse vorgeben.
Dabei ist bisher auch kein einziger VBA-Code verwendet worden, dh der Anwender kann auch nichts an- oder abschalten.
Weiterer Vorteil der Formellösung:
Formeln passen sich in den meisten Fällen automatisch an eingefügte oder gelöschte Zellen an.
Bei VBA musst du dann immer die Programmierung anpassen (oder die Programmierung gleich dynamisch anlegen, was aber aufwendiger ist.)
Gruß, Daniel
hier mit Combobox und Gültigkeitsliste
https://www.herber.de/bbs/user/52589.xls

Anzeige
AW: bedingte Listbox
23.05.2008 21:43:00
Gerd
Hallo Daniel,
"Dabei ist bisher auch kein einziger VBA-Code verwendet worden, dh der Anwender kann auch nichts an- oder abschalten."
Dies solltest jetzt nicht so einseitig betrachten.
Nur die automatische Formel_Berechnung abschalten u. evtl. Namen löschen.
Sicher ist, dass nichts sicher ist :-)
Gruß Gerd

AW: bedingte Listbox
23.05.2008 22:29:59
Daniel
Hi
sicher ist nix
aber zum Abschalten der Makros muss man nur beim öffnen nen falschen Knopf drücken.
das kann aus versehen schon mal passieren.
Wer Namen löscht oder die Automatische Berechnung abschaltet, muss sich erstmal durch die entsprechenden Menüs durchklicken und macht das idR mit Absicht und Wissen (ich sage jetzt bewusst nicht Sachverstand).
hier ist also ein bewusstes Handeln anzunehmen und kein zufälliger Fehler.
und wer bewusst in einer fremden Anwendung Namen löscht, der hats nicht besser verdient, als vor einer nicht funktionierenden Anwendung zu sitzen.
Gruß, Daniel

Anzeige
Wie Makro-Lösung?
24.05.2008 06:58:25
Florian
Hallo nochmal,
wie würde denn eine Makro-Lösung aussehen?
Florian

AW: Wie Makro-Lösung?
24.05.2008 11:20:00
Daniel
Hi
auf jeden Fall aufwendiger.
btw bist du der gleiche Florian, der diese Frage gestellt hat?
https://www.herber.de/forum/messages/979179.html
wenn ja, kurze Rückmeldungen, ob die Antwort hilfreich war und ein kleines Dankeschön erhöhen im allgemeinen die zukünfitige Hilfsbereitschaft des Antwortenden.
Gruß, Daniel

AW: Wie Makro-Lösung?
24.05.2008 14:04:34
Gerd
Hallo Florian,
für 2 Listboxen aus der Steuerelemente-Toolbox in Tabelle mit Codenamen Tabelle1
'Modul DieseArbeitsmappe
Option Explicit

Private Sub Workbook_Open()
Call Laden
End Sub


'Modul Tabelle1
Option Explicit


Private Sub ListBox1_Change()
If ListBox1.ListIndex > -1 Then ListBox2.List = arrModell(ListBox1.ListIndex)
End Sub


'Modul1
Option Explicit
Public arrHersteller(2), arrModell(2), arrOpel, arrAudi, arrMercedes
Sub Laden()
arrHersteller(0) = "Opel"
arrHersteller(1) = "Audi"
arrHersteller(2) = "Mercedes"
arrOpel = Array("Astra", "Vectra", "Omega")
arrAudi = Array("A3", "A4", "A6", "A8")
arrMercedes = Array("C -Klasse", "E -Klasse", "S -Klasse")
arrModell(0) = arrOpel
arrModell(1) = arrAudi
arrModell(2) = arrMercedes
Tabelle1.ListBox1.List = arrHersteller
End Sub


Gruß Gerd

Anzeige
Sorry!
25.05.2008 00:03:58
Florian
Hi Daniel,
Sorry, natürlich, Danke!
Die Sub "Mehrfacheinträge löschen" wollt ich nicht wegen der Wenn-Funktion, die drunter "doppelte" war mir viel zu aufwendig, muss schließlich alles implementieren.
Ich habs jetzt anders gelöst:
Wie gesagt ist das eine relativ große Makro, in der Daten aus verschiedenen Files importiert werden und diese dann weiterverarbeitet werden. Meine Lösung: doppelte Datensätze rot markieren und auf einem Kontrollsheet sammeln. Nach gewisser Zeit lass ich in der Makro eine Fehlerkontrolle laufen, dh. sobald auch nur eine Zelle im Kontrollsheet gefüllt ist schmeiß ich Ihn aus der Makro und fordere ihn auf, die fehlerhaften Datensätze in den Originaldateien zu korrigieren. Danach startet er die Makro neu.
Deine Lösung war aber sicher auch nicht schlcht, ist halt immer so eine Stilfrage, und gerade in Excel kann man ja alles auf viele Arten lösen.
Gruss,
Florian
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige