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 (si les macros sont bien activées à l'ouverture)


capture

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

Bonjour d3d9x,

Merci pour cette information, mais quand je fais cela, j'ai un message d'erreur.

image4

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
Ainsi après la création d'un nouveau classeur, le lancement de cette procédure (via le bouton) permettra de générer la description de toutes tes fonctions disponibles.

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.

Rechercher des sujets similaires à "probleme execution automatique partie code"