Avatar billede folj Forsker
28. december 2020 - 12:02 Der er 3 kommentarer

Excel-VBA: funktion der tester for uge 53 i et årstal

Hej Eksperter !

Jeg har en projektmappe til at styre ugens leverencer.
Så jeg har en workbook med et sheet for hver uge.

Hvert år så ryddes alle sheets for gamle data med en VBA-procedure, hvorefter sheets genbruges til data i det nye år.
Nu i år så opdagede brugerne at der ikke var noget sheet til uge 53.

Jeg tænker at en bruger måske har slettet dette sheet, et af de år hvor vi kun havde 52 uger.

Jeg tænker lige at jeg kan bygge noget ind i den VBA-procedure jeg allerede afvikler, der blot skjuler uge 53 hvis den eksisterer, og gør synlig hvis året der klargøres til indeholder uge 53.

Punkt 1: Jeg får brug for hjælp til en funktion der tester om efterfølgende år har 53 uge. Gerne så funktionen svarer false eller true til uge 53.

Når jeg har en sådan funktion på plads, så vil jeg tro jeg kan kreere resten selv.
Avatar billede claes57 Ekspert
28. december 2020 - 13:09 #1
isoWeekNumber = DatePart("ww", DT, vbMonday, vbFirstFourDays)
I dt har du 31. Dec og næste års årstal. Så vil du få 52 eller 53 som svar

Hvis du laver samme øvelse med 1. Jan så ved du også, om året starter i uge 53 eller 1
Avatar billede jens48 Ekspert
28. december 2020 - 19:57 #2
D. 28/12 vil altid have den sidste uge i året, når du bruger isoweeknumber, så hvis du tester på den dato, ved du om der er 52 eller 53 uger i året.
Avatar billede store-morten Ekspert
28. december 2020 - 20:14 #3
For at få True/False så prøv:
Dim NæsteÅr53Uger As Boolean

NæsteÅr53Uger = False
If DatePart("ww", "31-12-" & Year(Now) + 1, vbMonday, vbFirstFourDays) = 53 Then _
NæsteÅr53Uger = True
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester