variable retournant le nom de la macro

Voir le sujet précédent Voir le sujet suivant Aller en bas

R?solu variable retournant le nom de la macro

Message par Guss_ le Mar 24 Juin 2014 - 2:46

Bonjour

Pour des soucis de mise a jour des versions, connaissez vous une manière de pouvoir récupérer le nom d'une macro en cours d'exécution, un peut comme pour les variable d'environnement.


ça me permet d'une part de faire suivre facilement le versionnage de mes macros lorsqu'elles génèrent leurs fichiers de configuration.
ça me permet également dans certain cas de pouvoir piloter Excel en lui envoyant du code à exécuter qui permet en retour d'appeler la macro en question

Actuellement je fais ça en partie manuellement via l'utilisateur qui renseigne le chemin, et d'autre par en dur pour le nom de la macro

Le fait de pouvoir récupérer cette variable automatiquement simplifierait grandement les choses pour la mise en place par les utilisateurs.


Dernière édition par Guss_ le Mer 25 Juin 2014 - 23:05, édité 1 fois

Guss_
Fédérateur
Fédérateur

Messages : 503
Date d'inscription : 08/01/2010

Revenir en haut Aller en bas

R?solu Re: variable retournant le nom de la macro

Message par Guss_ le Mer 25 Juin 2014 - 21:16

Je me réponds, j'ai pu trouvé grâce à une réponse sur un autre forum

Code:
1.Sub catmain()
2.    'code de test d'appel de la fonction
3.  msgbox Info_Macro()
4.  msgbox Info_Macro("chemin" )
5.  msgbox Info_Macro("nom" )
6.end Sub
7.
8.
9.Function Info_Macro(Optional Genre As String) As String
10.    Dim APC As Object
11.    Dim ChrI, i, t
12.    Set APC = CreateObject("MSAPC.Apc" )
13.    Info_Macro = APC.VBE.ActiveVBProject.FileName
14. 
15.    If Genre = "nom" Then
16.            For i = 1 To Len(Info_Macro)
17.            ChrI = Left(Right(Info_Macro, i), 1)
18.                If ChrI = "\" Then
19.                    Info_Macro = Right(Info_Macro, i - 1)
20.                    Exit For
21.                End If
22.            Next
23.    Else
24.        If Genre = "chemin" Then
25.            For i = 1 To Len(Info_Macro)
26.            ChrI = Left(Right(Info_Macro, i), 1)
27.                If ChrI = "\" Then
28.                    Info_Macro = Left(Info_Macro, Len(Info_Macro) - i + 1)
29.                    Exit For
30.                End If
31.            Next
32.        End If
33.    End If
34.End Function

Guss_
Fédérateur
Fédérateur

Messages : 503
Date d'inscription : 08/01/2010

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum