Comment lancer une macro d'un autre classe

Dranreb

XLDnaute Barbatruc
Re : Comment lancer une macro d'un autre classe

Bonsoir.
Le plus simple c'est de l'affecter à un bouton de formulaire.
Sinon il y a Application.Run suivi de ce qu'on retrouve dans la propriété OnAction du bouton de formulaire.
Donc ça vaut le coupe de l'affecter même si on ne veut pas garder ce système. Surtout si le classeur contenant la macro est fermé.
À ce propos ne pas oublier de le fermer avant de récupérer la propriété OnAction, car le chemin n'y figure pas quand il est ouvert.
 

Alain carnas

XLDnaute Nouveau
Re : Comment lancer une macro d'un autre classe

Bonsoir.
Le plus simple c'est de l'affecter à un bouton de formulaire.
Sinon il y a Application.Run suivi de ce qu'on retrouve dans la propriété OnAction du bouton de formulaire.
Donc ça vaut le coupe de l'affecter même si on ne veut pas garder ce système. Surtout si le classeur contenant la macro est fermé.
À ce propos ne pas oublier de le fermer avant de récupérer la propriété OnAction, car le chemin n'y figure pas quand il est ouvert.

Bonjour
Désolé mais je suis novice et j'ai du mal à comprendre ta réponse.
peux-tu préciser?
Merci
 

Dranreb

XLDnaute Barbatruc
Re : Comment lancer une macro d'un autre classe

Bonjour.

Préciser quoi ?

Bouton de formulaire : forme dessinée ayant l'aspect d'un bouton de commande, mais qui n'en est pas un.
Run, méthode

Voir aussi S'applique à Exemple Spécificités
Méthode Run telle qu'elle s'applique à l'objet Range.
Cette méthode exécute la macro Microsoft Excel à cet endroit. La plage doit se trouver dans une feuille macro.
expression.Run(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28, Arg29, Arg30)

expression Obligatoire. Expression qui renvoie un objet Range.
Arg1-Arg30 Arguments de type Variant facultatifs. Arguments à transmettre à la fonction.


Méthode Run telle qu'elle s'applique à l'objet Application.
Cette méthode exécute une macro ou appelle une fonction. Elle peut être utilisée pour exécuter une macro écrite en Visual Basic ou dans le langage de macro de Microsoft Excel ou pour exécuter une fonction dans une DLL ou une XLL.
expression.Run(Macro, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28, Arg29, Arg30)

expression Obligatoire. Expression qui renvoie un objet Application.
Macro Argument de type Variant facultatif. Macro à exécuter. Il peut s'agir d'une chaîne de caractères contenant le nom de la macro, d'un objet Range indiquant l'endroit où se trouve la fonction ou encore d'un identificateur de Registre pour une fonction DLL (XLL) inscrite dans le Registre. En cas d'utilisation d'une chaîne de caractères, celle-ci sera évaluée dans le contexte de la feuille active.
Arg1-Arg30 Argument de type Variant facultatif. Arguments à transmettre à la fonction.


Notes

Vous ne pouvez pas utiliser d'arguments nommés avec cette méthode. Ils doivent être transmis par position.
La méthode Run renvoie ce que la macro exécutée renvoie. Les objets qui sont transmis à la macro en tant qu'arguments sont convertis en valeurs (en appliquant la propriété Value à l'objet). Cela signifie que vous ne pouvez pas passer d'objets aux macros à l'aide de la méthode Run.
Exemple

Cet exemple montre comment appeler la fonction macro My_Func_Sum, qui est définie dans la feuille macro MyCustom.xlm (cette dernière doit être ouverte). Dans cet exemple, la fonction accepte deux arguments numériques, 1 et 5.

mySum = Application.Run("MYCUSTOM.XLM!My_Func_Sum", 1, 5) MsgBox "Macro result: " & mySum
OnAction, propriété
Voir aussi S'applique à Exemple Spécificités
Renvoie ou définit le nom de la macro Visual Basic exécutée si l'utilisateur clique sur le contrôle de barre de commandes ou change sa valeur. Type de données String en lecture-écriture.

Remarque L'application conteneur détermine s'il s'agit d'un nom de macro valide.

Exemples
Cet exemple montre comment ajouter un contrôle de barre de commandes à la barre intitulée « Custom » et spécifier que la macro intitulée « MySub » doit être exécutée sur simple clic du bouton.

Set myBar = CommandBars("Custom")
Set myControl = myBar.Controls _
.Add(Type:=msocontrolButton)
With myControl
.FaceId = 2
.OnAction = "MySub"
End With
myBar.Visible = True
Cet exemple montre comment ajouter un contrôle de barre de commandes à la barre intitulée « Custom ». Le contrôle ajouté est appelé « FinanceAddIn » et s'exécute sur un simple clic du bouton.

Set myBar = CommandBars("Custom")
Set myControl = myBar.Controls _
.Add(Type:=msocontrolButton)
With myControl
.FaceId = 2
.OnAction = "!<FinanceAddIn>"
End With
myBar.Visible = True
 
Dernière édition:

Discussions similaires

Réponses
6
Affichages
362

Statistiques des forums

Discussions
312 769
Messages
2 091 933
Membres
105 108
dernier inscrit
CarltonVdV