Herbers Excel-Forum - das Archiv

ComboBox

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
    Bild

    Betrifft: ComboBox
    von: Ilona
    Geschrieben am: 26.10.2003 19:42:40
    Hallo Ihr, ich habe da ein kleines Problem mit Kombinationsfeldern.
    Vielleicht kann mir jemand helfen.
    Ich habe zwei Kombinationsfelder die einmal mit einer Liste von Kundengruppennummern und die andere mit Kundennamen gefüllt werden. Nun soll aber je nach Auswahl in der einen, der Inhalt in der anderen wechseln. Also bei Kundengruppe 1 sollen nur noch alle Kundennamen angezeigt werden, die zu Kundengruppe 1 gehören und anders herum genauso.
    Hier ist mal mein Quelltext:
    'den Kombifeldern die Listen zuordnen

    
    
    Function Kombi(ZellBereich, KombiName) As Boolean
    ActiveSheet.Shapes(KombiName).Select
    With Selection
    .ListFillRange = ZellBereich        ' Listenbereich setzen
    .LinkedCell = ""
    .DropDownLines = 8                  ' Anzahl der anzuzeigenden Einträge
    .Display3DShading = False
    .ListIndex = 1
    End With
    Kombi = True
    End Function
    
    


    ' Erstellen einer Liste aller vorkommenden Kundengruppen
    ' Zuordnen dieser Listen zum Kombinationsfeld

    
    
    Sub KDGruppe()
    Dim KDGruppe As String, lKDGruppe As String
    Dim LineIndex As Integer, OutIndex As Integer
    Dim ZellBereich As String
    KDGruppe = "@@@@@"
    lKDGruppe = "@@@@@"
    LineIndex = 8
    OutIndex = 2
    'Sortieren nach KdGruppe
    SortiereKDGruppe
    'Ausgabe für alle KdGruppen als ersten Listeneintrag
    Worksheets("Import").Cells(1, 34).Value = "alle"
    'Ausgabe jeder KdGruppe
    Do While (Worksheets("Import").Cells(LineIndex, 1) > "")
    KDGruppe = Worksheets("Import").Cells(LineIndex, 11)
    If (KDGruppe <> lKDGruppe) And (lKDGruppe <> "@@@@@") Then
    Worksheets("Import").Cells(OutIndex, 34).Value = lKDGruppe
    OutIndex = OutIndex + 1
    End If
    lKDGruppe = KDGruppe
    LineIndex = LineIndex + 1
    Loop
    If (lKDGruppe <> "@@@@@") Then
    Worksheets("Import").Cells(OutIndex, 34).Value = lKDGruppe
    End If
    ' Bereich ermitteln, wo KdGruppe ausgegeben wird
    ZellBereich = "=$AH$1:$AH$" + CStr(OutIndex)
    ' Name des Kombinationsfeldes
    KombiName = "Dropdown 1"
    bOK = Kombi(ZellBereich, KombiName)
    Worksheets("Import").Range("A1:A1").Select
    Exit Sub
    End Sub
    
    


    ' Erstellen einer Liste aller vorkommenden Kunden
    ' Kundennummer zum Unterscheiden, falls gleiche Namen
    ' Zuordnen dieser Listen zum Kombinationsfeld

    
    
    Sub Kunde()
    Dim Kunde As String, lKunde As String
    Dim KNr As Integer, lKNr As Integer
    Dim LineIndex As Integer, OutIndex As Integer
    Dim ZellBereich As String
    Kunde = "@@@@@"
    lKunde = "@@@@@"
    LineIndex = 8
    OutIndex = 2
    'Sortieren nach Kunde
    SortiereKD
    Worksheets("Import").Cells(1, 35).Value = "alle"
    Worksheets("Import").Cells(1, 36).Value = -1
    Do While (Worksheets("Import").Cells(LineIndex, 1) > "")
    Kunde = Worksheets("Import").Cells(LineIndex, 9)
    KNr = Worksheets("Import").Cells(LineIndex, 10)
    If (Kunde <> lKunde) And (lKunde <> "@@@@@") Then
    Worksheets("Import").Cells(OutIndex, 35) = lKunde
    Worksheets("Import").Cells(OutIndex, 36) = lKNr
    OutIndex = OutIndex + 1
    End If
    lKunde = Kunde
    lKNr = KNr
    LineIndex = LineIndex + 1
    Loop
    If (lKunde <> "@@@@@") Then
    Worksheets("Import").Cells(OutIndex, 35) = lKunde
    Worksheets("Import").Cells(OutIndex, 36) = lKNr
    End If
    ' Bereich ermitteln, wo KdGruppe ausgegeben wird
    ZellBereich = "=$AI$1:$AI$" + CStr(OutIndex)
    ' Name des Kombinationsfeldes
    KombiName = "Dropdown 3"
    bOK = Kombi(ZellBereich, KombiName)
    Worksheets("Import").Range("A1:A1").Select
    Exit Sub
    End Sub
    
    



    
    
    Function GetIndex(KombiName) As Integer
    Dim nIndex As Integer
    Worksheets("Import").Activate
    ActiveSheet.Shapes(KombiName).Select
    With Selection
    nIndex = .ListIndex
    End With
    GetIndex = nIndex
    End Function
    
    



    
    
    Function GetKDGruppe() As String
    Dim nIndex As Integer
    Dim sKDGruppe As String
    nIndex = GetIndex("Dropdown 1")
    sKDGruppe = Worksheets("Import").Cells(nIndex, 34)
    GetKDGruppe = sKDGruppe
    End Function
    
    



    
    
    Function GetKunde() As Integer
    Dim nIndex As Integer
    Dim KNumber As Integer
    nIndex = GetIndex("Dropdown 3")
    KNumber = Worksheets("Import").Cells(nIndex, 36)
    GetKunde = KNumber
    End Function
    
    



    
    
    Function GetKundeName() As String
    Dim nIndex As Integer
    Dim KName As String
    nIndex = GetIndex("Dropdown 3")
    KName = Worksheets("Import").Cells(nIndex, 35)
    GetKundeName = KName
    End Function
    
    



    Ich hoffe das reicht:
    Würde mich über Hilfe freuen. Danke schon mal im Voraus.
    ILONA
    Bild

    Betrifft: doppelt oT
    von: t
    Geschrieben am: 27.10.2003 10:53:26
    http://xlforum.herber.de/messages/328944.html
     Bild
    Excel-Beispiele zum Thema " ComboBox"
    ComboBox als Symbol Alle ComboBoxes auf Position 1
    Werte in eine ComboBox einer UserForm übernehmen ComboBox in Abhängigkeit einer 2. ComboBox ein-/ausblenden
    ComboBox mit Monatsnamen füllen Mehrspaltige ComboBox
    ComboBox2 in Abhängigkeit von ComboBox1 bestücken Nur Zellen mit Inhalt in ComboBox listen
    Neue UserForm bedingt nach ComboBox-Auswahl aufrufen Neues Element in ComboBox