Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1000to1004
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
Werte in Combobox filtern
11.08.2008 13:57:00
Frank
Hallo!
Ich habe in einer Tabelle mehrere unterschiedlich aktuelle Datensätze. In Spalte E habe ich das Datum des Eintrages gespeichert. Per Combobox kann ich Datensätze suchen und in eine Datenmaske zur Bearbeitung oder andere Formulare kopieren. In meiner jetzigen Combobox erhalte ich alphabetisch sortiert die Namen und Vorname der Kunden aus Spalte C und D sowie dahinter das Datum des Eintrages aus Spalte E angezeigt.
Bei einigen Kunden kommen aufgrund häufiger Änderungen einige Einträge zustande. Die alten Datensätze dürfen nicht verworfen werden. Ich benötige ich sie allerdings selten. Nun möchte ich, dass in der Combobox nur noch einmal der jeweilige Name des Kunden angezeigt und automatisch der aktuellste Datensatz ausgewählt wird.
Ist dies möglich und wenn ja - kann mir jemand einen Tipp geben wie ich das hinbekommen?
Gruß Frank

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte in Combobox filtern
11.08.2008 16:23:00
ChrisL
Hallo Frank
Geschenk für dich anbei.
Ist ein klein wenig gemurkst, aber funktioniert. U.a. erfolgt die Auswahl (Change-Ereignis) mittels For...Next Schleife. Vermutlich wäre es ein besserer Ansatz die Zeile in einer versteckten ComboBox Spalte zu speichern, um eine Suche zu verhindern... naja, wird bei einer sehr grossen Datenmenge relevant (Performance). Meine nur, es gibt noch Verbesserungspotential.
Ausserdem solltest du beachten, die Datumsspalte absteigend zu sortieren. Die Tatsache dass du erwähnst, dass deine Liste schon alphabetisch ist, bedeutet für mich, dass die Daten vorgängig sortiert werden (idealerweise Code integriert). Somit sollte es einfach sein, die Spalte E ebenfalls zu sortieren.
Gruss
Chris
Option Explicit

Private Sub ComboBox1_Change()
Dim iZeile As Long, LetzteZeile As Long
LetzteZeile = Range("E65536").End(xlUp).Row
For iZeile = 2 To LetzteZeile
If Cells(iZeile, 3) = ComboBox1.List(ComboBox1.ListIndex, 0) And Cells(iZeile, 4) =  _
ComboBox1.List(ComboBox1.ListIndex, 1) Then
Rows(iZeile).Select 'anpassen
Exit For
End If
Next iZeile
End Sub



Private Sub UserForm_Initialize()
Dim iZeile As Long, LetzteZeile As Long
Dim iAr As Long, iiAr As Long
Dim bStart As Boolean
ReDim hilfsArray(0) As Variant
hilfsArray(0) = "Start"
LetzteZeile = Range("E65536").End(xlUp).Row
bStart = True
For iZeile = 2 To LetzteZeile
If arCheck(iZeile, hilfsArray) = True Then
If bStart Then
ReDim datenArray(2, 0) As Variant
bStart = False
Else
iAr = iAr + 1
ReDim Preserve datenArray(2, iAr) As Variant
End If
datenArray(0, iAr) = Cells(iZeile, 3)
datenArray(1, iAr) = Cells(iZeile, 4)
datenArray(2, iAr) = Cells(iZeile, 5)
iiAr = iiAr + 1
ReDim Preserve hilfsArray(iiAr)
hilfsArray(iiAr) = Cells(iZeile, 3) & Cells(iZeile, 4)
End If
Next iZeile
ComboBox1.ColumnCount = 3
ComboBox1.List = WorksheetFunction.Transpose(datenArray)
End Sub



Private Function arCheck(iZeile As Long, ar As Variant) As Boolean
Dim x As Long
On Error Resume Next
x = Application.Match(Cells(iZeile, 3) & Cells(iZeile, 4), ar, 0)
If Err.Number Then arCheck = True
End Function


Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige