xla qui s'auto -installe en macro complé.?

yaka

XLDnaute Occasionnel
Bonjour

Est-il possible qu'un fichier xla contenu dans un exécutable ou une archive (.zip) s'auto-installe en macro complémentaire dans Excel? (sans que l'utilisateur soit obligé d'aller le chercher...)
Si oui, quelle est la marche à suivre?

Une fois installé comment faire pour que celui-ci fasse apparaitre automatiquement un nouveau menu ou bouton par l'intermédiaire duquel on pourrait exécuter la macro contenue dans ce xla?

Merci pour votre aide

Y+
 

skoobi

XLDnaute Barbatruc
Re : xla qui s'auto -installe en macro complé.?

Bonjour yaka,

Bonjour

Une fois installé comment faire pour que celui-ci fasse apparaitre automatiquement un nouveau menu ou bouton par l'intermédiaire duquel on pourrait exécuter la macro contenue dans ce xla?

Merci pour votre aide

Y+

Voici deux codes placé dans ThisWorkbook d'un de mes xla qui (à l'ouverture d'un fichier quelconque) ajoute un menu "perso" avec son contenu:

Code:
Private Sub Workbook_Open()
Dim MenuPerso As CommandBarPopup
Dim NewMenuItem As CommandBarButton
Dim complement As Boolean
'vérifie que le fichier est installé et non ouvert comme un fichier ordinaire
On Error Resume Next
complement = AddIns("DoublonsBDD_v1.1").Installed
If Err.Number > 0 Then
  MsgBox "Ce fichier est une macro complémentaire à installer via Outils>Macros complémentaire", vbCritical
  ThisWorkbook.Close
  Exit Sub
End If
'ici on vérifie que le menu "Perso" existe ou pas afin d'éviter de créer un doublon
On Error Resume Next
Test = Application.CommandBars(1).Controls("perso").Caption
If Err.Number > 0 Then
  Set MenuPerso = Application.CommandBars(1).Controls.Add(Type:=10, Temporary:=True)
  MenuPerso.Caption = "Perso"
Else: Set MenuPerso = Application.CommandBars(1).Controls("perso")
End If
Set NewMenuItem = MenuPerso.Controls.Add(Type:=1, Temporary:=True)
With NewMenuItem
  .Caption = "Doublons BDD"
  .OnAction = "TraiteDoublon"
  .FaceId = 1987
End With
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
If Application.CommandBars(1).Controls("perso").Controls.Count = 1 Then
  Application.CommandBars(1).Controls("perso").Delete
Else: Application.CommandBars(1).Controls("perso").Controls("Doublons BDD").Delete
End If
On Error GoTo 0
End Sub

Pour ta première question, je ne sais pas faire.

Bonne journée.
 

Discussions similaires

Statistiques des forums

Discussions
312 412
Messages
2 088 196
Membres
103 763
dernier inscrit
p.michaux