par , 16/12/2020 à 07h43 (2320 Affichages)
Cliquer sur le lien https://www.developpez.net/forums/bl...categoryid=624, pour voir tous mes billets concernant les macros complémentaires (Add-In) (xlam)
Avant-Propos
Dans un billet précédent, je traitais comme sujet Créer une macro complémentaire
Lorsque l'on écrit une application nécessitant l'utilisation d'une macro complémentaire particulière (Add-In, Complément), il peut être intéressant de savoir à l'aide d'une procédure VBA,
- si l'Add-In est déjà installé
- Installer l'Add-In
- Désinstaller l'Addin
- etc.
Le but de ce billet est de présenter quelques procédures intéressantes permettant de charger dynamiquement une macro complémentaire
La boîte de dialogue Compléments
Nous avons vu dans le précédent billet sur le sujet, la boîte de dialogue qui affiche les compléments (Installés ou non)
![Nom : dlg Compléments vierge.png
Affichages : 774
Taille : 9,8 Ko](https://www.developpez.net/forums/attachment.php?attachmentid=586698&d=1608047579)
Comment savoir si un complément est présent dans la collection AddIns ?
La fonction IsAddinExist renvoie True si l'Add-In est présent dans la collection des Add-Ins (Chargé ou pas)
1 2 3 4 5 6 7
| Function IsAddinExist(AddinName As String) As Boolean
Dim Elem As Integer
Do Until Elem = Application.AddIns.Count Or IsAddinExist = True
Elem = Elem + 1
IsAddinExist = StrComp(Application.AddIns(Elem).Title, AddinName, vbTextCompare) = 0
Loop
End Function |
Ainsi l'instruction
Debug.Print IsAddinExist("MagicTools")
ainsi que
Debug.Print IsAddinExist("Invoice")
renverront True
Comment savoir si un complément présent dans la liste est installé ?
La propriété Installed de l'objet AddIn renvoie True ou False suivant que l'Add-In est installé ou pas
En fonction de l'illustration ci-dessus, l'instruction ci-dessous renverra True alors qu'en passant comme argument MagicTools elle renverra False
Application.AddIns("Invoice").Installed
Comment charger un complément lorsqu'il n'est pas encore présent dans la collection AddIns ?
La procédure ci-dessous permet de charger un complément, nommer pour l'exemple AddInDynamic.xlam se trouvant dans un sous répertoire, nommé Config, du classeur où se trouve cette procédure
1 2 3 4 5 6 7
| Sub AddinInstall()
Const SubFolder As String = "Config"
Const AddInName As String = "AddInDynamic.xlam"
Dim FullName As String
FullName = ThisWorkbook.Path & "\" & SubFolder & "\" & AddInName
Application.AddIns.Add(Filename:=FullName).Installed = True
End Sub |
BILLETS PRECEDENTS SUR LE MÊME SUJET