Ich habe auf ein Arbeitsplatz mit der Steuerelement-Toolbox eine Combobox
mit dem Namen: Combobox1 platziert. Wie sieht der Script aus, welcher beim
öffnen der Excel-Datei diese Combobox mit Werten füllt. Ich möchte, dass das
Datum der nächsten 12 Freitage in der Combobox1 steht.
Fr. 05.02.2010
Fr. 12.02.2010
.
.
.
Fr. 23.04.2010
Könnt Ihr mir helfen bei der Umsatzung? Danke im Voraus
Danke im Voraus
Grüße Thomas
> Ich habe auf ein Arbeitsplatz mit der Steuerelement-Toolbox eine Combobox
Auf ein Arbeitsplatz??? Du meinst eine Tabelle, oder?
> mit dem Namen: Combobox1 platziert. Wie sieht der Script aus, welcher beim
> öffnen der Excel-Datei diese Combobox mit Werten füllt. Ich möchte, dass das
> Datum der nächsten 12 Freitage in der Combobox1 steht.
>
> Fr. 05.02.2010
Ausgehend von heute wäre den nächste Freitag aber der 29.1.2010,
oder? ;-)
Andreas.
Private Sub Workbook_Open()
Dim Datum As Date, Tag As Integer
'Heute
Datum = Date
'Wochentag holen
Tag = Weekday(Datum, vbUseSystemDayOfWeek)
'Nächsten Freitag berechnen
Select Case Tag
Case 5
'Okay, heute ist Freitag
Case Is < 5
Datum = Datum + 5 - Tag
Case Else
Datum = Datum + Tag - 7 + 5
End Select
'Die nächsten 12 Freitage hinzufügen
For Tag = 1 To 12
Sheets(1).ComboBox1.AddItem Datum
Datum = Datum + 7
Next
End Sub
Ich habe mal zwei Versionen notiert. Die erste Prozedur füllt die
ComboBox mit den reinen Datumswerten – wie schon bei Andreas.
Die zweite Version hängt noch eine zweite Spalte mit dem formatierten
Datum an. Der Wert steht in der unsichtbaren ersten Spalte. So kannst Du
mit dem Wert ComboBox1.Value rechnen und hast trotzdem eine formatierte
Anzeige. Der Wochentag ist zwar immer "Fr." - aber genau so hattest Du
es ja in deinem Posting geschrieben.
Peter
Sub ComboBoxFuellen1()
Dim i As Integer
Sheets(1).ComboBox1.Clear
For i = 1 To 12
Sheets(1).ComboBox1.AddItem Int(Date / 7) * 7 - 1 + i * 7
Next
End Sub
Sub ComboBoxFuellen2()
Dim i As Integer
Dim datum As Date
With Sheets(1).ComboBox1
.ColumnCount = 2
.ColumnWidths = "0cm;3cm"
.Clear
For i = 1 To 12
datum = Int(Date / 7) * 7 - 1 + i * 7
.AddItem datum
.List(.ListCount-1,1) = Format(datum, "DDD, DD.MM.YYYY")
Next
End With
End Sub
super Antworten. Hat mir sehr geholfen!
Grüße Thomas
"Peter Schleif" wrote:
> .
>