08. maj 2008 - 11:20
Der er
8 kommentarer og
1 løsning
Find det aktuelle datointerval
Hej eksperter
Jeg ønsker via kode at finde det datointerval der aktuelt vises i min kalender.
Altså hvis jeg aktuelt kigger på uge 19 i arbejdsuge-view skal min kode returnere '5/5 - 9/5 2008'.
Nogen der kan klare den?
På forhånd tak.
Det blev nu ikke i OutLook - men i et regneark (i første omgang):
Koden anbringes i Ark1
...................................................................
Option Explicit
Rem OVERSKRIFTER A1: UgeNr | B1 Fra | C1 Til
rem Indtast ugeNr i A2:
Dim ugensFørsteDag As Date
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then
If Target.Value <> "" And IsNumeric(Target.Value) = True Then
opsætArbejdsuge Target.Value
End If
End If
End Sub
Sub opsætArbejdsuge(uge)
denFørsteDagDetteÅr uge
With Worksheets("Ark1")
.Range("B2").Value = ugensFørsteDag
.Range("C2").Value = DateAdd("d", 4, ugensFørsteDag)
End With
End Sub
Private Sub denFørsteDagDetteÅr(uge)
Dim dag1 As Date, denFørsteUgedag, ugeNr
dag1 = "01-01-" & Year(Now)
denFørsteUgedag = Format(dag1, "w", 2, 2)
ugeNr = Format(dag1, "ww", 2, 2)
Rem ryk frem til uge 1 - hvis den 1. uge ikke er 1
If ugeNr <> "1" Then
While Format(dag1, "ww", 2, 2) <> "1"
dag1 = DateAdd("d", 1, dag1)
Wend
Else
If denFørsteUgedag <> 1 Then
dag1 = DateAdd("d", (Val(denFørsteUgedag) - 1) * -1, dag1)
End If
End If
If uge <> "1" Then
dag1 = DateAdd("ww", Val(uge) - 1, dag1)
End If
ugensFørsteDag = dag1
End Sub