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 :

[VBA Excel] Ajouter un AddIn par du code


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Points : 247
    Points
    247
    Par défaut [VBA Excel] Ajouter un AddIn par du code
    Bonjour,

    J'ai récupéré du code censé me permettre d'ajouter un AddIn dans Excel.
    Cet AddIn se met en évidence par une barre de menu contenant des boutons.
    Je n'arrive cependant pas à refaire tourner le systéme.

    Je dispose d'un Installeur, d'un désinstalleur.
    Ces deux fichiers ont du code dans la feuille thisWorkbook qui permet de lancer l'installation d'un .xla.
    Et je dispose du fichier .xla avec l'installateur de la barre de menu dans le thisWorkbook. (ce code executé à la main fonctionne)
    Voila le code du désinstallateur
    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
     
    Private Sub Workbook_Open()
     
        On Error Resume Next
        MsgBox "Desinstallation of Pivot Table Factory", vbInformation
     
        Dim oXL As Object, oAddin As Object
        Set oXL = CreateObject("Excel.Application")
     
     
        oXL.Workbooks.Add
     
        Set oAddin = oXL.AddIns.Add(Environ("userprofile") & "\Desktop\Application RF VBA\TCD\CreationTCD_2.xla", True)
     
     
        oAddin.Installed = False
        oXL.Quit
     
        Set oXL = Nothing
     
        AddIns("Pivot Table Factory").Installed = True
        AddIns("Pivot Table Factory").Installed = False
     
        MsgBox "Pivot Table Factory add-in is now uninstalled"
    End Sub
    Est ce que j'ai oublier quelque chose dans mon systéme?

    Je mets le code que je voudrais voir executer par mon installeur

    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
     
     
    Private Sub Workbook_AddinInstall()
     
        Dim MaBar
     
        On Error Resume Next 'Just in case
        'Delete any existing menu item that may have been left.
        Application.CommandBars("Rolling Forecast").Delete
        'Add the new menu item and Set a CommandBarButton Variable to it
        Set MaBar = Application.CommandBars.Add("Rolling Forecast")
     
        With MaBar
            Set Btn1 = .Controls.Add(msoControlButton)
            With Btn1
                .Style = msoButtonIconAndCaption
                .Caption = "Parametrage Pivot's Table"
                .FaceId = 500
                .OnAction = "Paramétrage"
            End With
     
        .Position = msoBarTop
        .Visible = True
     
    End With
    Merci d'avance de vos idées.

  2. #2
    RLX
    RLX est déconnecté
    Membre du Club Avatar de RLX
    Inscrit en
    Octobre 2004
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 51
    Points : 61
    Points
    61
    Par défaut
    Salut comme de bien entendu,

    j'ai pas très bien compris ce que tu veux faire et surtout ce qui ne fonctionne pas surtout que d'après ce que j'ai compris à l'ouverture du fichier Excell tu install et désinstall ton addin (Workbook_open)

    SEULEMENT DANS LES MACROS COMPLE-MENTAIRES XLA
    Workbook_AddinInstall()
    - Pour comprendre cette procédure il faut parfaitement comprendre le fonctionnement des Macros Complémentaires (XLA).
    Cette procédure doit se trouver dans une macro complémentaire .XLA. Elle s'exécutera quand, depuis un autre classeur quelconque, l'utilisateur fera Outils/Macros Complémentaires, cochera la case en regard de la macro complémentaire .XLA qui contient cette procédure AddinInstall, et cliquera sur OK.
    On pourrait, de cette façon, afficher une nouvelle barre d'outils qui contient les boutons qui appellent les procédures stockées dans ce .XLA.
    Cette procédure ne s'exécute qu'une fois à ce moment : Donc pas à l'ouverture à la mise en mémoire de ce .XLA, mais vraiment lors de son INSTALLATION avec Outils/Macros complémentaires.

    - S'exécute au même instant que AddinInstall, mais lorsqu'on clique sur OK après avoir retiré la coche.

    Workbook_Open()
    - Lorsqu'on ouvre un classeur, c'est la première procédure qui s'exécute avant les autres (Activate, etc...)
    Il existe une autre façon d'exécuter du code automatiquement à l'ouverture du classeur : Il suffit de mettre dans n'importe quel module une procédure dont le nom est Auto_Open. Cet Auto_Open s'exécutera après Workbook_Open

Discussions similaires

  1. [VBA-E] Enregistrer une fonction par le code
    Par Scritch852 dans le forum Excel
    Réponses: 2
    Dernier message: 03/04/2007, 10h53
  2. [VBA-Excel] Ajouter plusieurs forme sur ma forme principale
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/02/2007, 13h44
  3. [VBA-E] Ajouter une reference par le code
    Par mustang-ffw02 dans le forum Installation, Déploiement et Sécurité
    Réponses: 12
    Dernier message: 21/11/2006, 19h28
  4. Ajouter une colonne (par du code) dans Listview
    Par __fabrice dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 23/11/2005, 17h39
  5. [VBA Excel] Ajouter, supprimer une ligne ou collone range
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 22/11/2005, 15h53

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