Microsoft Excel

Herbers Excel/VBA-Archiv

mehrere Comboboxen

Betrifft: mehrere Comboboxen von: Ernie
Geschrieben am: 08.06.2008 15:55:58

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

  

Betrifft: AW: mehrere Comboboxen von: Chris
Geschrieben am: 08.06.2008 20:05:41

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


  

Betrifft: AW: Nachtrag von: Chris
Geschrieben am: 08.06.2008 20:06:43

servus,

die ListFill-ranges musst du natürlich in den Eigenschaften der CB löschen.

Gruß

Chris


  

Betrifft: Danke !! von: Ernie
Geschrieben am: 08.06.2008 22:16:56

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

https://www.herber.de/bbs/user/52935.xls


  

Betrifft: AW: Danke !! von: Chris
Geschrieben am: 08.06.2008 23:37:23

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


  

Betrifft: AW: Danke !! von: Chris
Geschrieben am: 09.06.2008 13:44:55

Servus Ernie,

bitteschön:

die Cb3 in Abhängigkeit der CB2:

https://www.herber.de/bbs/user/52951.xls

Gruß

Chris


  

Betrifft: AW: Danke !! von: Ernie
Geschrieben am: 09.06.2008 17:20:58

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


 

Beiträge aus den Excel-Beispielen zum Thema "mehrere Comboboxen"