Bonjour à tous,

Mon problème est le suivant : je voudrais écrire une macro qui écrirait une macro dans ThisWorkbook. Cette macro se lancerait à l'ouverture du classeur et permettrait d'afficher l'onglet historique à chaque ouverture.

J'arrive à écrire dans ThisWorkbook en utilisant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
.VBComponents(1).CodeModule
'et
.InsertLines X + 1 "..."
J'appelle ma fonction ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
'destinationWorkbook.KeepChangeHistory = True 'active le suivi des révisions
'destinationWorkbook.SaveAs AccessMode:=xlShared 'partage le classeur ce qui est obligatoire pour que le suivi fonctionne mais cette ligne 
         'fait planter Excel sans déclencher d'erreur (chargement infini...)
CreateMacroInThisWorkbook
La fonction qui écrit la macro d'affichage de l'onglet
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
Function CreateMacroInThisWorkbook()
    Dim Line As Integer
 
    With destinationWorkbook.VBProject.VBComponents(1).CodeModule
        Line = .CountOfLines
        .InsertLines Line + 1, "Private Sub Workbook_Open()"
        .InsertLines Line + 2, "With ThisWorkbook"
            .InsertLines Line + 3, ".HighlightChangesOptions When:=xlAllChanges, Who:=""Tous"""
            .InsertLines Line + 4, ".ListChangesOnNewSheet = True"
            .InsertLines Line + 5, ".HighlightChangesOnScreen = False"
        .InsertLines Line + 6, "End With"
        .InsertLines Line + 7, "End Sub"
    End With
 
End Function
Sans macro, il faut activer le suivi puis sauvegarder avant de pouvoir faire apparaître l'onglet historique.

Si le classeur n'est pas partagé, pas de suivi possible. Si le classeur est partagé pas d'édition de macro possible (on ne peut même pas les afficher).

La méthode .HighlightChangesOptions échoue la plupart du temps. Si j'écris d'abord la macro puis active le suivi et sauvegarde, il se passe quelque chose au démarrage (chargement), mais l'historique ne s'affiche pas.

C'est sûrement très simple, mais je ne comprends pas comment parvenir à contourner cette difficulté !

Auriez-vous des pistes ?

Merci