Bonjour,
Je cherche en vain le moyen de programmer en VBA Excel 2010, à l'ouverture d'un classeur, la désactivation des modules complémentaires personnels (xlsam).
Mon problème est que je travaille sur un classeur Excel, avec beaucoup de formules, dont certaines sont définies par mon module personnel activé. Or pour rendre partageable ce classeur en réseau avec mes collègues, j'ai préféré intégrer les fonctions personnelles VBA définies dans le module xslam personnel. Pour éviter, dans mes formules de feuilles Excel, de voir apparaître le chemin de l'emplacement du module complémentaire personnel xlsam devant mes fonctions personnelles (existantes dans le xlsam et dans mon code VBA des modules intégrés à mon classeur xlsm) plutôt que le nom seul de la fonction utilisée sans aucun chemin, je dois penser à vérifier, avant le chargement de mon classeur xlsm, que le module complémentaire personnel xlsam est bien désactivé (dans les options Fichier/Options/Compléments/Atteindre les compléments Excel).
Si je ne pense pas à faire cela et que le module complémentaire personnel est malencontreusement activé, toutes mes formules faisant appel aux fonctions VBA définies dans le module complémentaire se retrouvent affichées avec le chemin du module complémentaire ! Si je ne fait pas gaffe et que j'enregistre, je suis bon pour un sacré nettoyage de toutes les formules du classeur...
Donc ma question est de savoir s'il est possible de coder en VBA la désactivation de mon module complémentaire personnel xlsam à l'ouverture du classeur xlsm.
J'ai essayé la solution ci-dessous, mais quelque-chose ne marche pas ou bien ce n'est pas la bonne méthode...
Voici mon code, implémenté dans l'objet du classeur thisWorkbook:
Son exécution plante sur la ligne
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 Option Explicit Option Base 0 Public Sub DesactiverMesMacrosComplementaires() Dim xlam$, titre$, chemin$ On Error GoTo sortie chemin = "C:\Users\pjebeily\AppData\Roaming\Microsoft\AddIns" xlam = chemin & "\MacroComplementaires_Paul.xlsam" titre = "MacroComplementaires_Paul" If Application.AddIns(titre).Installed Then Workbooks(xlam).Close Application.AddIns(titre).Installed = False End If Exit Sub sortie: MsgBox "Macro complémentaire " & titre & " déjà désactivée..." End Sub Public Sub ActiverMesMacrosComplementaires() Dim xlam$, titre$, chemin$ On Error GoTo sortie chemin = "C:\Users\pjebeily\AppData\Roaming\Microsoft\AddIns" xlam = chemin & "\MacroComplementaires_Paul.xlsam" titre = "MacroComplementaires_Paul" If Not (Application.AddIns(titre).Installed) Then Workbooks.Open xlam Application.AddIns(titre).Installed = True End If Exit Sub sortie: MsgBox "Macro complémentaire " & titre & " déjà activée..." End Sub Private Sub Workbook_Open() DesactiverMesMacrosComplementaires End Sub. Si quelqu'un a une idée...
Code : Sélectionner tout - Visualiser dans une fenêtre à part Workbooks(xlam).Close
@+
Paul
Partager