Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
1676to1680
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
Inhaltsverzeichnis

Kalenderwochen in Combobox (für KW filter)

Kalenderwochen in Combobox (für KW filter)
02.03.2019 15:10:28
Andreas
Hallo an alle
Ich versuch mir gerade eine Tabelle zu basteln. Leider brauch ich dafür VBA wovon ich nicht viel Ahnung hab. Vielleicht könnte mir da jemand etwas helfen. Das wäre echt großartig.
Es geht um das Umsortieren und filtern einer Liste nach Kalenderwochen. Ich möchte eine Combobox mit den Kalenderwochen Angaben dynamisch füllen.
Die erste Auswählbare KW soll aus der Tabelle abgeleitet sein und zwar immer KW und das Jahr (Bsp KW 04/2018) dann sollen alle KWs aufgelistet werden. Die letzte KW in der Auswahl soll entweder die des spätesten “ bis“ Datum aus der Tabelle sein. Außer es übersteigt nicht die 5 KW des nächsten Jahres. Dieses Jahr wäre also der letzte Auswählbare Eintrag mindestens KW 05/2020.
Wenn eine KW ausgewählt wird wäre es schön, wenn die zwei Textfelder neben der Combobox mit dem Datums Angaben „von“ - „bis“ befüllt werden könnten jeweils von Montag bis Sonntag der gewählten KW. Ich will dann später daraus einen Kalenderwochen Filter für die Tabelle machen. So dass entweder über die Combobox gefiltert wird oder über eine Eingabe ins Textfeld. Aber im Moment muss ich erstmal die KWs in die Combobox bekommen.
Könnte mir da jemand helfen oder hätte ein leicht verständliches Code Bsp. für mich. Bin schon etwas verzweifelt.
Bsp Datei: https://www.herber.de/bbs/user/128042.xlsm
Grüße
Andreas

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

Betreff
Datum
Anwender
Anzeige
AW: Kalenderwochen in Combobox (für KW filter)
02.03.2019 15:43:00
Andreas
Hallo
Ich bin mir nicht sicher ob ich es gut und verständlich erklärt hab deswegen noch eine kleine Ergänzung. Angenommen das früheste Datum in der Tabelle ist der 28.12.18 und das späteste BIS Datum der 08.03.19. Müsste die Combobox folgende Auswahlmöglichkeit liefern:
52/2018
01/2019
02/2019
03/2019
04/2019
05/2019
06/2019
07/2019
08/2019
09/2019
10/2019
11/2019
usw.
usw.
usw. bis
05/2020
Danke für eure Hilfe
Grüße Andreas
AW: Kalenderwochen in Combobox (für KW filter)
02.03.2019 19:16:02
Andreas
Also nach einer ganzen weile Recherche habe ich jedenfalls mal diese Funktion zusammen kopiert. Die gibt eine Datumsangabe mal auf die richtige weise zurück.Ich hab das in meinem vorherigen Post nicht richtig angegeben das Jahr sollte zuerst stehen.
Function Jahr_KW(dat As Date) As String
Jahr_KW = Year(dat) & "/" & WorksheetFunction.WeekNum(dat, 21)
End Function

Aber wie durchlauf ich die zwei datumsspalten, ohne mir doppelte Einträge einzutragen.
Anzeige
AW: Kalenderwochen in Combobox (für KW filter)
02.03.2019 21:47:11
Andreas
Hallo
Es hat sich zwar bis jetzt noch nimand gefunden der Zeit hätte mir weiter zu helfen aber ich bin inzwischen einwenig weiter gekommen. Ich habe es nun endlich geschaft die Funktion zum Füllen der TextBox mit dem Datum des Montages der ausgewählten KW, mir zusammen zu kopieren.
Function MontagKW(ByVal JahrUndKW As String)
' benötigt einen übergebenen String = Jahr/KW (bsp. 2019/14)
' gibt Datum des Montages der übergebenen Kallenderwoche zurück
Dim myKW As Long
Dim myJahr
Dim KWMon As Date
myJahr = Split(JahrUndKW, "/")(0)
myKW = Split(JahrUndKW, "/")(1)
MontagKW = DateSerial(myJahr, 1, 1) + (myKW - 1) * 7
MontagKW = MontagKW + 1 - Weekday(MontagKW, 2)
If Format(MontagKW, "ww", 2, 2)  myKW Then MontagKW = MontagKW + 7
End Function
Aber da hänge LEIDER die ganze Zeit beim Füllen der Combobox fest. Ich wollte die daten zuerst in ein Array laden und dann weiterverarbeiten. es handelt sich um spalte 3 und 4 der Intelligenten Tabelle.
Private Sub ComboFüllen()
Dim daten
Dim tbl As ListObject
Set tbl = ActiveSheet.ListObjects("Mustertabelle")
daten = tbl.ListColumns(3).DataBodyRange.Value
End Sub

Wie bekomme ich die zweite datumsspalte in das Array
daten = tbl.ListColumns(3:4).DataBodyRange.Value   'so klappt es mal nicht
daten = tbl.ListColumns(3:3,4:4).DataBodyRange.Value    'so auch nicht
Ich kann das Array dan später durchlaufen und die Funktion zum zusammensetzen der KW anwenden.
die meine ich:
Function Jahr_KW(dat As Date) As String
Jahr_KW = Year(dat) & "/" & WorksheetFunction.WeekNum(dat, 21)
End Function

Aber wie verhindere ich dann das die KWs mehrmals vorkommen? Kennt da jemand vielleicht den richtigen weg? Bsp Datei mit den Funktionen https://www.herber.de/bbs/user/128053.xlsm
Grüße
Andreas
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige