Comment appeler une macro à partir d'un bouton et passer des arguments
Je veux ajouter un bouton à ma feuille de calcul excel qui doit appeler une macro qui peut gérer un agument (une valeur de type entier). Malheureusement, lors de la création du bouton, je ne peut pas lier une macro qui a des arguments. Aussi, juste en tapant la macro et l'argument ne fonctionne pas.
Est-il une solution simple pour passer un argument à une macro quand un bouton est pressé?
source d'informationauteur user3470049
Vous devez vous connecter pour publier un commentaire.
Oui, vous pouvez affecter une macro à un bouton (ou un autre excel contrôles/menu actions) et de passer constante OU variable d'arguments.
Dans le "Affecter une Macro" de la fenêtre (clic droit sur l'objet et sélectionnez "Affecter une Macro"): la
par exemple, pour passer de 2 constantes: 'Button1_Click("Une chaîne de caractères!", 7)'
Par exemple, pour passer de la valeur de la feuille Sheet1!$1$à un bouton de fonction, vous avez le texte suivant dans le " nom de la Macro:' champ:
'Button1_Click(Evaluate("Feuil1!$$1"))'
Si vous ne placez pas votre argument variable avec un "Évaluer" la fonction, excel renvoie l'erreur " la Formule est trop complexe pour être affecté à un objet.'.
J'aurais inclus une image si ce n'était autorisée à mon premier post.
Utiliser un contrôle activeX bouton de commande et le bouton cliquez sur la méthode, appelez le sub et passer l'argument:
Appelé à partir d'une "forme" bouton sur une feuille de calcul que vous pouvez faire quelque chose comme ceci:
Où le bouton d'appel est nommé (par exemple) "Button_3"
Ou (plus simple) cliquez-droit sur le bouton et entrez
'TestMe2 5'
(y Compris les guillemets simples)Voir aussi: Excel 2010 - Erreur: Impossible d'exécuter la macro SelectCell à l'aide .onAction
J'ai eu du mal avec ma version Personnelle.xlsb!'testForXXXX("Test")'. J'ai une erreur lorsque vous cliquez sur le bouton contenant la Macro.
Cependant, j'ai pu corriger en supprimant le "(" et ")". Donc, Personnelles.xlsb!'testForXXXX "Test" " (notez l'espace entre testForXXXX et "Essai...").
En fait, je n'ai pas besoin de Personnel.xlsb! et c'était seulement en mesure d'utiliser la " testForXXXX "Test"'.
J'ai frappé le même problème avec la
assign button
de ne pas être très utile jusqu'à ce que j'ai réalisé que tout le potentielmacros
affichés étaient seulement ceux de mesPersonal.xlsb
fichier qui n'a pas pris arguments. Ensuite j'ai tapéPersonal.xlsb!'macroNameWhichTakesArguments("arg1", ...)'
et la feuille ramassé.I. E.
Personal.xlsb!'testForXXXX("Test Test")'
Où la
macro testForXXXX
prendre une chaîne de caractères en entrée, puis la feuille travaillé sur ok.Lorsque vous utilisez l'affecter une macro route pour un
button in excel 2007
au moinstestForXXXX
n'apparaîtront pas dans la liste des macros si il faut des arguments.Je soupçonne Aaron C suis fauché par cette trop. C'est peut-être préférable de ne pas utiliser un
Personal.xlsb
fichier?Appeler ce Sous à partir d'un bouton :
... sachez que les Sous ne seront pas répertoriés dans les macros disponibles, car il a un paramètre. Il suffit de taper dans l'appel entre guillemets simples :
'TestButton "Hello"'