Bonjour,
J'ai fait une macro toute simple qui fait juste un search and replace dans une classe.
Pour la créer, j'ai utilisé le record de macro.
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
17
18
19 Sub TemporaryMacro() DTE.Find.FindWhat = "blablabla" DTE.Find.ReplaceWith = "blublublu" DTE.Find.Target = vsFindTarget.vsFindTargetFiles DTE.Find.MatchCase = False DTE.Find.MatchWholeWord = False DTE.Find.MatchInHiddenText = True DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxRegExpr DTE.Find.SearchPath = "Entire Solution" DTE.Find.SearchSubfolders = True DTE.Find.KeepModifiedDocumentsOpen = False DTE.Find.FilesOfType = "*.vb;*.cs" DTE.Find.ResultsLocation = vsFindResultsLocation.vsFindResults1 DTE.Find.Action = vsFindAction.vsFindActionReplaceAll If(DTE.Find.Execute() = vsFindResult.vsFindResultNotFound) Then Throw New System.Exception("vsFindResultNotFound") End If DTE.Find.KeepModifiedDocumentsOpen = True End Sub
Cette macro ne modifie les données que dans une seule classe.
Donc pendant la création, tout se passe bien:
- il cherche, trouve la classe en question, l'ouvre et modifie les valeurs.
La macro se génère bien pas de soucis.
Par contre quand je l'exécute, elle ne fonctionne que si la classe en question est ouverte dans VS.
Lorsque la classe en question est fermée, la macro se bloque.
J'ai l'impression qu'il:
- cherche, trouve la classe en question mais n'arrive pas à l'ouvrir ou faire le replace dedans.
Avez vous une idée s'il vous plaît?
Je vous remercie d'avance,
Cordialement.
Partager