Bonjour
mon tableau devrait s'ouvrir sur la semaine en cours. Voici le code VBA qui me permet de le faire (les semaines sont numérotées de 01 à 52 et répertoriées sur la ligne 2, de A2 à NI2); le -1 dans le code servait à afficher à partir de la semaine précédent la semaine en cours
Private Sub Workbook_NewSheet(ByVal Sh As Object)
End Sub
Private Sub Workbook_Open()
Dim c As Range
On Error GoTo fin
Sheets(Trim(Year(Date))).Select
On Error GoTo 0
[XX2].Select
Set c = [A2:NI2].Find(IsoWeekNumber(Date) - 1, LookIn:=xlValues)
If c Is Nothing Then
MsgBox "Semaine absente"
Else
Application.Goto c
End If
Exit Sub
fin:
MsgBox "Feuille année absente"
End Sub
Function IsoWeekNumber(ByVal d As Date) As Long
' philben :
Numéro ISO des semaines | Philben
Dim wd As Long
wd = Weekday(d, vbMonday)
IsoWeekNumber = Int((d - DateSerial(Year(d - wd + 4), 1, 1) - wd + 11) / 7)
End Function
Or depuis peu j'ai systématiquement le message d'erreur suivant:
erreur d'exécution '1004'
la méthode 'GOTO' de l'objet '_application' a échoué
Merci pour l'aide (je connais excel mais suis nul en VBA)
Bonne journée.