Problème d'exécution automatique d'une partie de code
Bonjour à tous,
J'ai une question que je n'arrive pas à résoudre et vient m'en remettre à vous.
Je vais tenter d'être clair et le matin, après un match de foot, c'est pas gagné.
J'ai écrit une fonction perso que j'ai enregistré en XLAM (Macro Complémentaire Excel.
J'ai ensuite ajouté le Compléments d'application actifs afin d'avoir à chaque Instance Excel cette fonction perso.
Jusque là, je n'ai pas de soucis et cela fonctionne très bien.
Ensuite, je veux personnalisé l'assistant Fonction pour que j'ai les aides à chaque paramètres de ma fonction perso.
J'ai donc crée un Sub avec mon Application.MacroOptions et je donne les aides des paramètres.
Pour que cela fonctionne, je dois exécuter cette Sub, lorsque je le fais, ça fonctionne parfaitement, là où j'ai un problème c'est que dès que je ferme la dernière instance Excel et que je relance Excel, tant que je ne relance pas (manuellement dans mon VBE) ma Sub, je n'ai plus l'aide personnalisée.
Auriez-vous une solution pour que cette procédure se lance automatiquement ?
Le fichier XLAM
Ma fonction perso
Function RechercheVPerso(ValeurCherchee As Range, LaSource As Range, ColonneRecherche As Integer, NumColonneRetour As Integer, Optional ValeurRetour As Integer = 1) As Variant
'Déclaration des variables
Dim NbLignes, CptBoucle, NumValeur As Integer
'Affectation des Variables
NbLignes = LaSource.Rows.Count
NbColonne = LaSource.Columns.Count
NumValeur = 1
If ColonneRecherche > NbColonne Then
RechercheVPerso = "Nombre de colonne insufissante dans le tableau source"
GoTo FinFonction
End If
For CptBoucle = 1 To NbLignes
If LaSource(CptBoucle, ColonneRecherche) = ValeurCherchee.Value Then
If NumValeur = ValeurRetour Then
RechercheVPerso = LaSource(CptBoucle, NumColonneRetour).Value
GoTo FinFonction
Else
NumValeur = NumValeur + 1
End If
End If
Next CptBoucle
RechercheVPerso = "Pas de valeur trouvées"
FinFonction:
End Function
Toujours dans mon XLAM, ma Sub
Sub DescriptionFonction()
Dim NomFonction As String
Dim DescriptionFonction As String
Dim CategoryFonction As String
Dim ArgumentDesc(1 To 5) As String
NomFonction = "RecherchevPerso"
DescriptionFonction = "Ma description perso"
CategoryFonction = 5
ArgumentDesc(1) = "Premier argument"
ArgumentDesc(2) = "Second argument"
ArgumentDesc(3) = "Troisième argument"
ArgumentDesc(4) = "Quatrième argument"
ArgumentDesc(5) = "Dernier argument"
Application.MacroOptions _
Macro:=NomFonction, _
Description:=DescriptionFonction, _
Category:=CategoryDescription, _
ArgumentDescriptions:=ArgumentDesc
End Sub
Merci d'avance pour votre aide.
Jp
Bonjour jpbt84,
Je n'ai jamais utilisé les XLAM, mais pour moi une première piste serait de regarder si dans les XLAM tu as accès à l'évènement "Workbook_Open". Ainsi en faisant appel à ta procédure "DescriptionFonction" dans l'évènement "Workbook_Open", ton complément serait toujours actif
J'ai fait mon test, j'arrive à exécuter une procédure du XLAM à l'ouverture de n'importe quel classeur
Peut être cette solution te conviendra-t-elle
Vis-à-vis du comportement du classeur .XLAM, je pense que ce n'est pas possible de trouver une solution automatique. Il faudrait réussir à décaler le lancement de la procédure après l'ouverture d'une feuille, mais cela pourrait générer plus de problèmes que de bénéfices)
Tu peux peut être t'orienter vers cette solution
- Ajout dans le .XLAM d'une procédure qui appelle toutes les autres procédures de "DescriptionFonction".
- Ajout d'un raccourci dans la barre Excel pour lancer la macro
Pour ma part, je n'ai pas réussi à mettre en pratique le message d'erreur VBA (Affichez le classeur) car à cette étape, aucun workbook ne semble disponible :s :s
Désolé je n'ai aucune vraie solution, que des propositions et tentatives :/
Ok,
Merci pour ces éléments.