Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
328to332
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
328to332
328to332
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

ComboBox

ComboBox
26.10.2003 19:42:40
Ilona
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

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige