J'ai trouvé un code qui semble fonctionner. J'ai donc la feuille "synthèse" avec une macro qui me permet d'afficher la feuille "1":
Sub afficher()
Sheets("1").Visible = True
Sheets("1").Select
Range("A5").Select
End sub
Et une deuxième macro sur la feuille "1" qui me sert à revenir à l'onglet actif avant l'exécution de la macro 1 (et qui ne prends pas en compte le nom de la feuille). Dans cet exemple on reviendra donc à la feuille "synthèse".
Dans ThisWorkbook:
Private Sub Workbook_SheetDeActivate(ByVal Sh As Object)
Me.BuiltinDocumentProperties("subject") = Sh.Name
End Sub
Dans le module :
Sub Cacheronglet()
On Error Resume Next
Application.Goto Sheets(ThisWorkbook.BuiltinDocumentProperties("subject").Value).Cells(1)
End Sub
Par contre maintenant, j'aimerai pouvoir lui indiquer de fermer la feuille "1" (sans la nommer) lors de l'exécution de la macro 2. Il faut donc passer par une variable ...
Sub Cacheronglet()
Dim var1 As Worksheet
Set var1 = ActiveSheet
On Error Resume Next
Application.Goto Sheets(ThisWorkbook.BuiltinDocumentProperties("subject").Value).Cells(1)
If MsgBox("Voulez-vous vraiment fermer l'onglet actif?", vbYesNo) = vbYes Then
Application.ScreenUpdating = False
ActiveWindow.var1.Visible = False
Application.ScreenUpdating = True
End If
End Sub
Mais ça ne fonctionne pas pour le moment. Une idée ?
Merci !