In meiner EA Liste habe ich 2 ComboBoxen eingefügt. Mit diesen ComboBoxen soll nur das Jahr aus der Spalte B ab Zeile 13 angezeigt werden. Das funktioniert auch. Möchte aber gerne immer nur ein Jahr angezeigt bekommen. Beispiel: in der Spalte steht 5x ##.##.2011 ; 3x ##.##.2012; 8x ##.##.2013 usw. Dann soll in den ComboBoxen nur jeweils 1x 2011;2012;2013 usw. stehen. Ist dies möglich?
05.05.2015, 09:09 (Dieser Beitrag wurde zuletzt bearbeitet: 05.05.2015, 09:09 von RPP63.)
Hallo! Probiere mal folgendes für ComboBox1 und 2:
Code:
Private Sub ComboBox1_DropButtonClick() Dim Zeile As Long ComboBox1.Clear For Zeile = 13 To Cells(Rows.Count, 2).End(xlUp).Row If Year(Cells(Zeile, 2)) <> Year(Cells(Zeile + 1, 2)) Then _ ComboBox1.AddItem Year(Cells(Zeile, 2)) Next Zeile End Sub
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Danke für die Hilfe! Funkt ja fast so wie ich das haben möchte. Nur sollte auch das Jahr was dann ausgewählt wird auch in der CB dann stehen. Bei mir ist das nicht so, da wird die CB wieder gelöscht. Gibt es da noch eine Hilfe?
probier mal. Zum erstmaligen Befüllen diesen Code in 'Diese Arbeitsmappe'
Code:
Option Explicit
Private Sub Workbook_Open() With Sheets("Kassenbuch") .SingleItem Sheets("Kassenbuch").ComboBox1 .SingleItem Sheets("Kassenbuch").ComboBox2 .ComboBox1.ListIndex = 0 .ComboBox2.ListIndex = 0 End With End Sub
Dieser Code in das Modul der Tabelle Kassenbuch, die Werte werden noch zusätzlich abhängig vom Wert der anderen Combobox eingeschränkt
Code:
Option Explicit
Private Sub ComboBox1_DropButtonClick() SingleItem ComboBox1, , CInt(ComboBox2.Value) End Sub
Private Sub ComboBox2_DropButtonClick() SingleItem ComboBox2, CInt(ComboBox1.Value) End Sub
Sub SingleItem(ByRef objCB As ComboBox, Optional MinJahr, Optional MaxJahr) Dim i As Integer Dim D1 As Object
If IsMissing(MinJahr) Then MinJahr = 1900 If IsMissing(MaxJahr) Then MaxJahr = 2099 Set D1 = CreateObject("Scripting.Dictionary") For i = 13 To Cells(Rows.Count, 2).End(xlUp).Row If Year(Cells(i, 2).Value) >= MinJahr And Year(Cells(i, 2).Value) <= MaxJahr Then D1(Format(Cells(i, 2).Value, "yyyy")) = 0 End If Next objCB.List = D1.Keys End Sub
06.05.2015, 21:43 (Dieser Beitrag wurde zuletzt bearbeitet: 06.05.2015, 22:02 von michel34497.)
Hallo Winny!
Danke für die Hilfe! Das ist ja das was ich haben wollte, SUUUUper. Werde noch ein bissel Testen. Kannst du den Code noch einmal beschreiben, also was er in den einzelnen Schritten macht? Aber nur wenn es dir nicht zuviel arbeit macht