C'est possible mais il est également très probable que les paramètres de sécurité des macros de l'utilisateur l'empêcheront de fonctionner initialement.
Pour régler les paramètres de sécurité (tous les exemples pour Excel 2003):
(à partir d'un classeur): Outils> Macro> Sécurité> Éditeurs approuvés
Vous devez maintenant cocher la case qui dit « fiducie l'accès au projet Visual Basic »
pour lire le code:
(depuis l'éditeur VBA): Outils> Références et ajouter "Microsoft Visual Basic pour Applications Extensibilité 5.3"(le fichier réel est VBE6EXT.OLB)
Pour travailler sur ce qui VBProject
est que, utilisez la propriété FileName
:
For Each vbpItem In Application.VBE.VBProjects
If (vbpItem.FileName = "C:\foo.xls") Then
Set vbpProject = vbpItem
End If
Next vbpItem
Une fois que vous avez le projet, vous pouvez vous référer au module par nom:
vbpProject.VBComponents("ThisWorkbook")
et vous peut vérifier combien de lignes il y a comme ceci:
If (vbpProject.VBComponents("ThisWorkbook").CodeModule.CountOfLines <> 147) Then
Avec l'objet CodeModule
, vous pouvez lire en arrière des lignes spécifiques (via la propriété Lines
) et changer de ligne (avec la méthode ReplaceLine
)
Je suis retagging ce VBA au lieu de VB.NET. Vous ne pouvez utiliser VBA que dans une feuille Excel. Vous pouvez utiliser VB.NET si vous utilisez VSTO, mais ce que vous demandez est VBA. – Eric