cs_Xavier
Messages postés12Date d'inscriptionmercredi 10 mai 2000StatutMembreDernière intervention29 avril 2005
-
10 févr. 2003 à 10:49
cs_Xavier
Messages postés12Date d'inscriptionmercredi 10 mai 2000StatutMembreDernière intervention29 avril 2005
-
5 mai 2005 à 00:27
Bonjour,
je cherche à écrire un addin pour word2000. Je me suis
inspiré des différents articles publiés sur MSDN pour
écrire un code efficace. Cependant, en dépit des
déclarations (librairie Office version 9.0, Word version
9.0, AddIn...) je rencontre un "petit" problème que je
soumets à votre sagacité.
Voici tout d'abord le listing du code incriminé :
Option Explicit
Dim oXL As Object
Dim MyAddin As Object
Dim WithEvents MyButton As Office.CommandBarButton
Dim WithEvents MyControl As Office.CommandBarComboBox
Private Sub AddinInstance_OnConnection(ByVal
Application As Object, _
ByVal ConnectMode As
AddInDesignerObjects.ext_ConnectMode, _
ByVal AddInInst As Object, custom() As Variant)
On Error Resume Next
' Initialise l'objet MyAddin
' Objectif : récupération de l'ID de l'instance pour
la procédure
' AddinInstance_OnStartupComplete
Set MyAddin = AddInInst
End Sub
Private Sub AddinInstance_OnDisconnection(ByVal
RemoveMode As _
AddInDesignerObjects.ext_DisconnectMode, custom() As
Variant)
On Error Resume Next
' Déconnexion de l'Add-In
MyControl.Delete
MyButton.Delete
Set MyButton = Nothing
Set MyControl = Nothing
Set mybar = Nothing
Set oXL = Nothing
Set MyAddin = Nothing
End Sub
Private Sub AddinInstance_OnStartupComplete(custom() As
Variant)
On Error Resume Next
' Création des objets propres à l'Addin
' Après le chargement complet de l'application hôte
' Déclaration des variables & objets
' Booléen indicateur de présence de la barre de commande
Dim BarreTrouve As Boolean
' Objets barre
Dim cbar As Object
Dim mybar As Object
' Adresse dynamique de l'instance de l'addin
Dim aAddin As String
'Contrôle de type bouton
Dim MyButton As Object
'Contrôle de type ComboBox
Dim MyControl As Object
Apres_SetBarre:
' Destruction de l'objet cbar devenu inutile
Set cbar = Nothing
End Sub
Private Sub MyButton_Click(ByVal Ctrl As
Office.CommandBarButton, CancelDefault As Boolean)
MsgBox ("Click sur MyButton")
End Sub
Private Sub MyControl_Change(ByVal Ctrl As
Office.CommandBarComboBox)
Dim ValRenvoye As Variant
Dim StrRenvoye As String
MsgBox ("Selection dans MaComboBox modifiée")
ValRenvoye = oXL.mybar.MyControl.Index
StrRenvoye = oXL.mybar.MyControl.Value
MsgBox ("-> " & Str(ValRenvoye) & " : " & StrRenvoye)
End Sub
Le problème rencontré est le suivant:
Un click sur le MyButton ne déclenche aucune action.
Une sélection dans MyControl retourne invariablement le
message d'erreur suivant : Macro non trouvée ou paramètres
de sécurité trop élevés.
Cependant :
- l'Addin est à priori correctement enregistré dans la
base de registre;
- les infobulles de déboggage renvoie un ID de type
MonAddIn.Connect;
- l'Addin est visible au travers de l'item supplément COM
du menu Outils;
- les paramètres de sécurité sont configurés de façon
minimale : exécution de tous les codes macros.
flamy51
Messages postés1Date d'inscriptionjeudi 13 mars 2003StatutMembreDernière intervention23 février 2005 23 févr. 2005 à 16:53
Bonjour Xavier
J'aurai voulu savoir si vous aviez trouvé une solution à votre problème, et si oui, quelle solution.
En effet, j'ai le même type de souci.
J'ai un addin VB.net qui fonctionne très bien sous Word XP et 2003.
Par contre, sous Word 2000, certains boutons de l'addin, suite à une opération de fusion de données dans un modèle effectuée par l'addin, ne répondent plus du tout aux événement.
Mon opération de fusion apparemment perd les événement de l'addin sous Word 2000, je ne comprends pas pourquoi.
cs_Xavier
Messages postés12Date d'inscriptionmercredi 10 mai 2000StatutMembreDernière intervention29 avril 2005 5 mai 2005 à 00:27
Bonjour Flamy,
Non désolé, je n'ai toujours pas trouvé de solution... mais il est vrai que j'ai également eu d'autres chats à fouetter.
Mais promis, si je trouve une solution, je la poste immédiatement.