IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Activation/Désactivation de modules complémentaires personnels via VBA [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 34
    Par défaut Activation/Désactivation de modules complémentaires personnels via VBA
    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:
    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
    Son exécution plante sur la ligne . Si quelqu'un a une idée...
    @+
    Paul

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 34
    Par défaut [XL-2010] Activation/Désactivation de modules complémentaires personnels via VBA
    Hello,
    Je pense que je devais être un peu fatigué ce jour là.
    La solution est en fait très simple. Il suffit de jouer sur la propriété "Installed" de l'addin dont on connait le titre. Cela donne (en chargeant ce code sous l'élément "thisWorkbook"):
    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
     
    Option Explicit
    Option Base 0
     
    Public Sub Gere_MacrosComplementaires(titreMacroComplementaire As String, chargement As Boolean)
     
        On Error GoTo sortie
     
        With Application.AddIns2(titreMacroComplementaire)
            If .Installed = Not (chargement) Then
                .Installed = chargement
            Else
                MsgBox "Macro complémentaire " & titreMacroComplementaire & " déjà " & IIf(chargement, "chargée", "déchargée")
            End If
        End With
        Exit Sub
    sortie:
        MsgBox "Macro complémentaire " & titreMacroComplementaire & " non trouvée..."
    End Sub
     
     
    Private Sub Workbook_Open()
        Call Gere_MacrosComplementaires("MacroComplementaires_Paul", False)
    End Sub

  3. #3
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, pour info voir ici

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Activation bibliothèques via VBA
    Par House MD dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 02/12/2007, 17h28
  2. Réponses: 6
    Dernier message: 08/06/2006, 19h21
  3. [VBA-E]Accès aux modules via VBA
    Par houba95 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 31/03/2006, 23h10
  4. [VBA-Access] Activer/Désactiver F11 en code
    Par Ricou13 dans le forum VBA Access
    Réponses: 7
    Dernier message: 19/12/2005, 13h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo