IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

Philippe Tulliez

VBA - Excel - Charger dynamiquement une macro complémentaire - Quelques procédures intéressantes

Noter ce billet
par , 16/12/2020 à 08h43 (320 Affichages)
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 : 77
Taille : 9,8 Ko

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)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Debug.Print IsAddinExist("MagicTools")
ainsi que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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

Envoyer le billet « VBA - Excel - Charger dynamiquement une macro complémentaire - Quelques procédures intéressantes » dans le blog Viadeo Envoyer le billet « VBA - Excel - Charger dynamiquement une macro complémentaire - Quelques procédures intéressantes » dans le blog Twitter Envoyer le billet « VBA - Excel - Charger dynamiquement une macro complémentaire - Quelques procédures intéressantes » dans le blog Google Envoyer le billet « VBA - Excel - Charger dynamiquement une macro complémentaire - Quelques procédures intéressantes » dans le blog Facebook Envoyer le billet « VBA - Excel - Charger dynamiquement une macro complémentaire - Quelques procédures intéressantes » dans le blog Digg Envoyer le billet « VBA - Excel - Charger dynamiquement une macro complémentaire - Quelques procédures intéressantes » dans le blog Delicious Envoyer le billet « VBA - Excel - Charger dynamiquement une macro complémentaire - Quelques procédures intéressantes » dans le blog MySpace Envoyer le billet « VBA - Excel - Charger dynamiquement une macro complémentaire - Quelques procédures intéressantes » dans le blog Yahoo

Mis à jour 17/12/2020 à 16h35 par Philippe Tulliez

Catégories
VBA Excel

Commentaires