Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: ComboBox .AddItem, wenn Datum nicht in Range

ComboBox .AddItem, wenn Datum nicht in Range
29.01.2024 15:32:05
Jess
Hallo zusammen,
ich stehe hier auf dem Schlauch.
Ich möchte eine Combobox mit Datumsangaben der nächsten 12 Montage befüllen. Das klappt. Jedoch würde ich diese Daten vorab gerne mit einer Liste (Range Tabellenblatt "Einzelberechnung" abgleichen. Es handelt sich um Feiertage, die nicht in die Combobox übernommen werden sollen.
Vorab vielen Dank für Feedback und Hilfe!
Jess

Hier der Code:


Private Sub UserForm_Initialize()

Dim i As Integer
Dim n As Variant
Dim datum As Date

With Me.ComboBox1
.ColumnCount = 2
.ColumnWidths = "0cm;3cm"
.Clear

For i = 1 To 12
For Each n In Worksheets("Einzelberechnung").Range("AB61:AB76")
datum = Int(Date / 7) * 7 + 2 + i * 7
If datum > n Then
.AddItem datum
.List(.ListCount - 1, 1) = Format(datum, "DDD, DD.MM.YYYY")
Exit For
End If
Next n
Next i
End With
End Sub
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBox .AddItem, wenn Datum nicht in Range
29.01.2024 15:47:32
Alwin Weisangler
Hallo,

da du keine Datei zur Verfügung stellst beschreibe ich den Lösungsweg.
Schreibe in eine Spalte oder in ein Array sämtliche Feiertage. Füge sämtliche Feiertage zu einem String mit Trenner zusammen.
In deiner Schleife prüfst du dann in jedem Schleifendurchlauf beispielhaft so:


If Instr(1, datum, strg, vbTextCompare)=0 then
.AddItem datum
end if

Das wäre eine von diversen Möglichkeiten.

Gruß Uwe

Anzeige
AW: ComboBox .AddItem, wenn Datum nicht in Range
29.01.2024 20:04:10
ralf_b
eine Lösungsvariante hab ich auch,
das Jahr wird vom ersten datum im Feiertagsbereich ermittelt
dann die Anzahl der Tage im Jahr
eine Schleife, in der jeder Tag durch hochzählen erzeugt wird und das Datum gegen deine Feiertagsliste geprüft.
zuletzt wird das Datenarray der Comboboxliste komplett zugewiesen.

Private Sub UserForm_Initialize()


Dim x As Integer
Dim daycnt&, cnt&, jahr&
Dim dat As Date
Dim arr

jahr = Year(Worksheets("Einzelberechnung").Range("AB61"))
daycnt = WorksheetFunction.days(DateSerial(jahr, 12, 31), DateSerial(jahr, 1, 1)) + 1
ReDim arr(1 To daycnt)
For x = 1 To daycnt
dat = DateSerial(jahr, 1, 1) + x - 1
result = Application.Match(CDbl(dat), Worksheets("Einzelberechnung").Range("AB61:AB76"), 0)
If IsError(result) Then
cnt = cnt + 1
arr(cnt) = Format(dat, "DDD, DD.MM.YYYY")
End If
Next
ReDim Preserve arr(1 To cnt)
With Me.ComboBox1
.ColumnCount = 2
.ColumnWidths = "0cm;3cm"
.Clear
.List = arr
end with
End Sub
Anzeige
AW: ComboBox .AddItem, wenn Datum nicht in Range
30.01.2024 10:56:31
Jess
Euch beiden erstmal vielen Dank für die schnellen Antworten. Ich werde erst am Wochenende dazu kommen die Vorschläge zu testen und gebe dann noch Rückmeldung.
Grüße
Jess
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige