Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

Jahre in Comobox.List anzeigen
#1
Hallo!

Ich möchte in einer Combobox.List Jahreszahlen beginnen mit dem Jahr 2007 bis zum aktuellen (2023) angezeigt bekommen.
Auf jeden Fall soll das aktuelle Jahr ganz oben und das älteste Jahr (2007) ganz unten angezeigt werden.
Kann mir da bitte jemand helfen?

LG
Thomas
Excel Version 2016
Antworten Top
#2
Moin, 19 

eine Möglichkeit: 21
Code:
Option Explicit
Private Sub UserForm_Activate()
    Dim lngIndex As Long
    For lngIndex = Year(Now) To 2007 Step -1
        ComboBox1.AddItem lngIndex
    Next lngIndex
    ComboBox1.ListIndex = 0
End Sub
Antworten Top
#3
Hallo!

Danke sehr für deine rasche Hilfe.
Ich habe nun deinen Code bei mir integriert, habe aber nun folgendes Problem.

Der Befehl " MsgBox ComboBox2.Value" wird nun zweimal aufgerufen. Einmal beim Öffnen der Userform und dann nochmal, wenn ich etwas in der Liste auswähle.
Ich hätte es nur gerne, wenn ich etwas aus der Liste auswähle und nicht schon beim Öffnen der Userform.
Anbei nun mein Code:

Code:
Private Sub UserForm_Activate()

Dim lngIndex As Long
    For lngIndex = Year(Now) To 2007 Step -1
        ComboBox2.AddItem lngIndex
    Next lngIndex
    ComboBox2.ListIndex = 0
End Sub

Private Sub ComboBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal Y As Single)
        Call SetComboBoxHook(ComboBox1)
End Sub

Private Sub ComboBox1_LostFocus()
        Call RemoveComboBoxHook
End Sub
   
Private Sub ComboBox2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal Y As Single)
        Call SetComboBoxHook(ComboBox2)
End Sub

Private Sub ComboBox2_LostFocus()
        Call RemoveComboBoxHook
End Sub

Private Sub ComboBox2_Change()

MsgBox ComboBox2.Value

End Sub

Ich hoffe, dass mir noch jemand helfen kann.

LG
Excel Version 2016
Antworten Top
#4
Moin, 19 

dann so: 21
[attachment=49404]
Antworten Top
#5
Code:
Private Sub UserForm_Initialize()
   ComboBox1.List=[index(row(2007:2023),)]
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#6
Hallo Case!

Kannst du mir bitte den Code hier online stellen, ich kann die Datei leider nicht öffnen?

LG
Thomas
Excel Version 2016
Antworten Top
#7
Hallo snb!

Danke für den Code, welcher auch funktioniert.
Nur will ich nicht fix das Jahr 2023 drinnen stehen haben, sondern das aktuelle Jahr. Damit dann nächstes Jahr automatisch 2024 genommen wird. 2007 kann fix drinnen stehen.
Excel Version 2016
Antworten Top
#8
Moin, 19 

jup: 21 

Code:
Option Explicit
Dim blnTMP As Boolean
Private Sub UserForm_Activate()
    Dim lngIndex As Long
    blnTMP = False
    For lngIndex = Year(Now) To 2007 Step -1
        ComboBox1.AddItem lngIndex
    Next lngIndex
    ComboBox1.ListIndex = 0
    blnTMP = True
End Sub
Private Sub ComboBox1_Change()
    If blnTMP Then
        MsgBox "Change..."
    End If
End Sub
Antworten Top
#9
@Case

Nicht
Code:
Private Sub UserForm_Activate()
Doch

Code:
Private Sub UserForm_Initialize()
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#10
Moin, 19 

@ snb

Ik neem altijd de "Activate event ".  Eigenlijk hangt het altijd af van de manier van werken. Ik heb vaak mensen gezien die met de "Initialize event" werken en zich dan realiseren dat het maar één keer werkt als ze de UserForm starten. Ik gebruik het alleen voor grote eenmalige acties. Ik negeer het voor kleine loops.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste