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 :

Vérifier qu'un AddIn est chargé [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 26
    Par défaut Vérifier qu'un AddIn est chargé
    Bonjour à tous,
    je souhaiterais vérifier qu'un AddIn est chargé à l'ouverture d'un classeur.
    J'utilise ce code mais j'ai une erreur (Erreur d’exécution '9': L'indice n'appartient pas à la sélection).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Check()
     
        If AddIns("Le nom de mon AddIn").Installed = True Then
            MsgBox "Installé"
       Else
          MsgBox "L'AddIn n'est pas installé. Seule la consultation est possible."
            ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly
        End If
     
    End Sub
    Voyez vous ou est l'erreur ?
    Bonne journée.

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 168
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Ce ne serait pas superflu que tu indiques à quelle ligne ce message d'erreur s'affiche.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 26
    Par défaut
    Aucune ligne en particulier malheureusement, j'ai juste ce message qui s'affiche.
    Si je rajoute On Error Resume Next je n'ai plus l'erreur mais qu'importe ce que je mets comme nom d'AddIn, le message Installé s'affiche.

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Essaie comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Application.AddIns.Item("Le nom de mon AddIn").Installed = True Then

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 26
    Par défaut
    Toujours pareil, ne faudrait il pas faire un foreach sur chaque AddIn et le comparer au miens ? Mais comment obtenir la liste ?
    Merci

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 168
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Voici un exemple de code pour lister le non des addins et s'ils sont installés ou pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Dim ad As AddIn
     For Each ad In AddIns
      Debug.Print ad.Name, ad.Installed = True
     Next
    Il y a effectivement une erreur qui est déclenchée avec ce test que tu as montré.
    On pourrait le détourner avec un ON ERROR
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Je ferai comme ceci
    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
    Sub Test()
     
    Check "XYChartLabeler.xlam"
    End Sub
     
    Private Sub Check(ByVal AdiName As String)
    Dim Adin As AddIn
     
    If Not ThisWorkbook.ReadOnly Then
        For Each Adin In AddIns
            If Adin.Name = AdiName Then
                If Adin.Installed = True Then
                    MsgBox "Installé"
                Else
                    MsgBox "L'AddIn " & AdiName & " n'est pas installé. Seule la consultation est possible."
                    ThisWorkbook.Saved = True
                    ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly
                End If
                Exit For
            End If
        Next Adin
    End If
    End Sub

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 26
    Par défaut
    Malheureusement rien ne se produit que je mette un nom correct ou non.

    Toujours rien avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Workbook_Open()
        Dim ad As AddIn
        For Each ad In AddIns
            If ad.Application.AddIns.Item("Le nom de mon AddIn").Installed = True Then
               MsgBox "Installé"
             Else
                 MsgBox "L'AddIn n'est pas installé. Seule la consultation est possible."
                  ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly
             End If
        Next
    End Sub
    Je sèche complétement là. Si vous avez des idées je suis tout ouie.

  9. #9
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    J'ai testé la code proposé (mais mis sur l'évènement Open du classeur)

    Testé avec 2 addins de chez moi
    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
    Private Sub Workbook_Open()
     
    Check "SOLVER.XLAM"
    'Check "XYChartLabeler.xlam"
    End Sub
     
    Private Sub Check(ByVal AdiName As String)
    Dim Adin As AddIn
     
    If Not ThisWorkbook.ReadOnly Then
        For Each Adin In Application.AddIns
            If UCase(Adin.Name) = UCase(AdiName) Then
                If Adin.Installed = True Then
                    MsgBox "AddIn " & AdiName & " installé"
                Else
                    MsgBox "L'AddIn " & AdiName & " n'est pas installé. Seule la consultation est possible."
                    ThisWorkbook.Saved = True
                    ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly
                End If
                Exit For
            End If
        Next Adin
    End If
    End Sub

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

Discussions similaires

  1. Vérifier si une forme est chargée
    Par Herve_be dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 19/12/2013, 18h34
  2. Vérifier qu'un script est chargé
    Par aku84 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 20/04/2013, 23h08
  3. MASAPI - Vérifier si un fichier est chargé
    Par Rifton007 dans le forum ActionScript 3
    Réponses: 20
    Dernier message: 19/04/2011, 20h41
  4. Comment vérifier qu'une DLL est chargée
    Par JeanNoel53 dans le forum NetBeans
    Réponses: 4
    Dernier message: 14/10/2010, 16h47
  5. [Script] Vérifier si un module est chargé ?
    Par brolon dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 19/06/2008, 17h06

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