2009-04-06 8 views
2

J'essaie d'écrire une macro VBA pour suivre les modifications apportées à un classeur dans une feuille séparée.Macro Excel VBA pour suivre les modifications dans une feuille séparée

Si vous le faites manuellement, la séquence de commandes est Outils> Suivi des modifications> Afficher les modifications, en prenant l'option Séparer la feuille de calcul. Vous devez faire deux itérations de la commande, une pour activer le suivi en ligne, une seconde pour déplacer le suivi vers une feuille séparée.

Utilisation de l'enregistreur macro, je suis arrivé à ce morceau de code:

With ActiveWorkbook 
    .Save 
    .KeepChangeHistory = True 
    .HighlightChangesOptions When:=xlAllChanges 
    .ListChangesOnNewSheet = True 
    .HighlightChangesOnScreen = False 
    .Worksheets("History").Select 
End With 

Quand je cours, je reçois l'erreur méthode échoue HighlightChangesOptions. Aucune suggestion?

Répondre

2

La méthode HighlightChangesOptions ne fonctionne que si le classeur est déjà partagé. Dans l'interface utilisateur, l'activation de HighlightChange partagera le classeur automatiquement, mais pas dans VBA. L'appel DisplayAlerts empêchera Excel de vous avertir que vous écrasez un classeur existant - lui-même. Vous pouvez commenter cette ligne juste pour voir ce qui se passe.

Notez que ce code ne peut pas vivre dans le classeur partagé. Une fois que vous partagez le classeur, le code cesse d'exécuter et les erreurs. Il doit vivre dans un autre classeur ou complément.

+0

Merci beaucoup pour votre aide. Cela a effectivement résolu le problème, mais comme vous le dites, la macro doit ensuite être appelée à partir d'un autre classeur. – draconis

+0

Je n'arrive toujours pas à faire fonctionner ce code. Je l'ai mis dans un ajout, mais il ne suit pas les changements. le message d'erreur est parti une fois mis dans un ad-in bien que –

+0

Que voulez-vous dire qu'il ne suit pas les changements? –

Questions connexes