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

mehrere Comboboxen

mehrere Comboboxen
08.06.2008 15:55:58
Ernie
Hallo alle zusammen,
trotz des schönen Wetters plage ich mich mit einem für mich riesengroßem Problem herum.
Ich habe eine Excel-Datei in der ich meine Medien auflisten möchte. Sie besteht aus folgenden Tabellen:
- Suche
- DVD
- Audio
- VHS
- LP
- Spiele
Wie die Namen schon sagen möchte ich unter "Suche" eine Überblick der Ergebnisse der einzelnen Medien haben. Die Daten dafür stehen in den jeweiligen Blätter. Eine Ausgabe der ersten 5 Ergebnisse der Laufnummern, Titel, Hinweise etc. nach Auswahl durch jeweils eine Combobox pro Medienart habe ich auch hin bekommen.
Mein Problem sind nun die doppelten und leeren Einträge in den Comboboxen. Ich habe mich die ganze Zeit damit herum geplagt zu versuchen, die Lösungsvorschläge, die ich gefunden habe, an meine Bedürfnisse anzupassen. Nur leider bin ich dabei Dank meiner nicht vorhandenen VBA- Kenntnisse kläglich gescheitert.
Ein weiteres Problem für mich ist bei der Audiosuche vorhanden. Dort möchte ich gerne erst den Interpreten und abhängig davon dann den Titel angezeigt bekommen. Nur leider bekomme ich auch die Übergabe von der einen zur anderen Combobox nicht hin.
Zum besseren Verständnis habe ich mal die Datei hoch geladen.
Hoffentlich kann mir hier jemand helfen.
Vielen Dank für eure Bemühungen schon mal im Vorhenein !
https://www.herber.de/bbs/user/52922.xls

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Benutzer
AW: mehrere Comboboxen
08.06.2008 20:05:00
Chris
Servus,
evtl. kannst du das so lösen:
Option Explicit

Private Sub Workbook_Open()
Dim lngLast As Long, i As Long, bolda As Boolean, z As Long
Application.Calculation = xlCalculationManual
With Sheets("DVD")
lngLast = IIf(IsEmpty(.Cells(Rows.Count, 3)), .Cells(Rows.Count, 3).End(xlUp).Row, Rows. _
Count)
End With
With Sheets("Suche")
.ComboBox1.AddItem Sheets("DVD").Cells(2, 3)
For i = 3 To lngLast
For z = 0 To .ComboBox1.ListCount - 1
.ComboBox1.ListIndex = z
If Sheets("DVD").Cells(i, 3) = .ComboBox1 Then
bolda = True
Exit For
End If
Next z
If bolda = False Then
.ComboBox1.AddItem Sheets("DVD").Cells(i, 3)
End If
bolda = False
Next i
End With
Application.Calculation = xlCalculationAutomatic
End Sub


Hier nurmal für die Combobox1, die anderen kannst du ja selber anpassen (kommen in den gleichen COde Open mit gleicher Machart, aber natürlich unterschiedlichen Namen.
Gruß
Chris

AW: Nachtrag
08.06.2008 20:06:43
Chris
servus,
die ListFill-ranges musst du natürlich in den Eigenschaften der CB löschen.
Gruß
Chris

Danke !!
08.06.2008 22:16:56
Ernie
Hallo Chris,
vielen, vielen Dank !!!
Es klappt (fast) zu 100%.
Folgendes habe ich gemacht:
(nur falls dies hier später noch mal jemand lesen sollte, dann hat er/sie es etwas einfacher)
1. Deinen Code eingefügt in "Diese Arbeitsmappe"
2. "End Sub" gelöscht
3. Von "With Sheets ...." bis " .... = xlCalculationAutomatic" markiert und so oft eingefügt, wie ich es benötige.
4. Eingefügt habe ich noch jeweils in der Zeile vor " With Sheets ...." zur besseren Nachverfolgung " 'Combobox Nr. (Blattname)
5. Am Ende wieder "End Sub" eingefügt
6. Die Einträge unter List Fill Ranges der einzelnen Comboboxen gelöscht.
So weit so gut ... so sehr gut.
Und hier ist nun das berühmt berüchtigte ABER. Im der Combobox "LP" zeigt er mir anstelle des Interpreten die Jahreszahl an. Das ist ja auch logisch, da auf die dritte Spalte im Dateiblatt "LP" zugegriffen wird. Das Problem konnte ich beheben in dem einfach ein leere Spalte eingefügt habe. Nur wie könnte ich es ändern bzw. was muß ich ändern damit er auf die zweite Spalte zugreift?
Und dann wäre da noch die Sache mit der Audioauswahl. Ist es möglich, daß die CB 3 abhängig von dem ausgewählten Wert (Interpreten) aus CB 2 die dementsprechenden Titel anzeigt?
Ich bedanke mich aufs allerherzlichste für deine bisherigen Bemühungen.
Gruß
Ernie

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


AW: Danke !!
08.06.2008 23:37:00
Chris
Servus Ernie,
einfach bei lngLast statt cells(rows.count, 3) für die 3 die 2 eintragen schon zählt er in Spalte 2.
zu 2.:
es ist möglich, aber heute nicht mehr. Ich geh jetzt schlafen.
Gruß
Chris

AW: Danke !!
09.06.2008 13:44:55
Chris
Servus Ernie,
bitteschön:
die Cb3 in Abhängigkeit der CB2:
https://www.herber.de/bbs/user/52951.xls
Gruß
Chris

AW: Danke !!
09.06.2008 17:20:00
Ernie
Hallo Chris,
da kann ich nur ganz herzlich
DDDDDDD...............A..............N..........N.......K.......K...........EEEEEEE......II
D.............D............A.A............NN........N.......K.....K.............E..................II
D.............D...........A...A...........N..N......N.......K...K...............E..................II
D.............D......... A.....A..........N....N....N.......K.K.................EEEEE..........II
D.............D.........AAA.AA.........N......N..N.......K...K...............E..................II
D.............D........A.........A........N........NN.......K.....K.............E..................II
DDDDDDD.........A...........A.......N..........N.......K.......K...........EEEEEEE......O
sagen
Grüße
Ernie

Links zu Excel-Dialogen

Meistgelesene Forumthreads (12 Monate)