Spero tu sappia che il calcolo della Settimana, come lo hai fatto espone ad un Baco, nella prima o nell'ultima di anni particolari...
Vedi questo:
https://support.microsoft.com/it-it/help/20029
Detto ciò, questa funzione dovrebbe risolvere
Public Function Date2Week(Optional dtmDate As Variant) As Byte
' ------------------------------------------------------
' Calcolo formato ISO 8601:1988 standard
' Verificati i casi da KB [OK]
' [url]https://support.microsoft.com/it-it/kb/200299[/url]
' ------------------------------------------------------
Dim Jan1 As Date
Dim Sub1 As Boolean
Dim Ret As Byte
If IsMissing(dtmDate) Then
Jan1 = DateSerial(year(Date), 1, 1)
Else
Jan1 = DateSerial(year(dtmDate), 1, 1)
End If
Sub1 = (Format(Jan1, "ww", VBA.VbDayOfWeek.vbUseSystemDayOfWeek, VBA.VbFirstWeekOfYear.vbUseSystem) = 1)
Ret = DatePart("ww", dtmDate, VBA.VbDayOfWeek.vbUseSystemDayOfWeek, VBA.VbFirstWeekOfYear.vbUseSystem) + Sub1
Date2Week = Ret
End Function
La tua sintassi è errata proprio nella Condizione:
"Settimana=" & DatePart("ww";Date();2;1) Mod 4+1 And "pr/se='" & "pr'"
Tuttavia fatico a capire:
1) Hai un campo che si chiama [pr/se]...? Male, non si usano caratteri speciali nei NOMI
2) Il valore [pr] da usare per il confronto con il campo da dove arriva...?