Macro

schaps

XLDnaute Occasionnel
Bonjour à vous tous,

Est-ce qu'il y a une façon plus rapide de lancer une macro sans être obliger de
sélectionner «affichage-afficher les macros-Exécuter» ??

merci

schaps
 

Verba_Tim

XLDnaute Occasionnel
Re : Macro

Bonjour, schaps, victor,
Tu peux aussi mettre un raccourci "afficher les macros" sur ta barre de raccourci :p
Mais le plus rapide reste pour moi le raccourci clavier ;)
Deux solutions:
Affichage des macros -> option, et tu leur affecte un raccourci,
Ou le code suivant:
Code:
Application.OnKey "%(lettre)", "nom de ma macro"
Avec le % correspondant à la touche ctrl que tu fais suivre par le caractère de ton choix. Si je ne me trompe pas, tu peux aussi y affecter par ce moyen des combinaisons caractères comme "%+x" correspondant à "ctrl + shift + x" ou encore "%^x" correspondant à "ctrl + alt + x". ^^
Fait toi plaisir!


Au plaisir de te lire,



VB_T

edit: ^^ le bouton c'est pas mal ^^ mais perso je n'utilise pas vraiment ^^ je passe la main :)
 

Verba_Tim

XLDnaute Occasionnel
Re : Macro

RE,

Très simple en fait :)

Au lieu d'une image, vous pouvez utiliser un bouton.

Cliquez sur Affichage / barres d'outils / puis cochez "Commandes" pour afficher la barre d'outils correspondante.

Dans cette barre d'outils, sélectionnez le bouton. Le pointeur de la souris se transforme en croix et vous permet de dessiner la forme du bouton sur la page Excel.

Reste à lui affecter une macro :
Double cliquez sur le bouton, vous arrivez dans la page de code associée à la page contenant votre bouton. Le squelette de la macro associée au bouton est déjà inscrit :
Private Sub CommandButton1_Click()
End Sub
Il suffit d'y ajouter les instructions souhaitées, par exemple :
Private Sub CommandButton1_Click()
MsgBox "bonjour"
End Sub
Le message "bonjour" est associé au bouton.

Reste encore à désactiver le mode "création" en cliquant sur l'icone en forme d'équerre de la barre d'outils "Commandes".

Remarque :
ma macro, qui fonctionne correctement quand elle est lancée directement, ne fonctionne plus quand elle est lancée par un bouton !
Si les lignes VBA qui doivent être lancées par clic sur le bouton nécessitent la manipulation de cellules Excel, on peut rencontrer une erreur. Par exemple, si vous essayez de lancer la copie de A1 en B3 par action sur le bouton :
Private Sub CommandButton1_Click()
Range("A1").Copy Range("B3")
End Sub
...vous aurez une erreur "La méthode Copy de la classe Range a échoué"
Alors que la macro suivante lancée manuellement se déroule sans problème :
Sub copie()
Range("A1").Copy Range("B3")
End Sub
L'explication vient du fait que après le clic sur le bouton, ce dernier reste sélectionné et la macro ne peut plus accéder aux cellules de la page Excel.
Une solution simple consiste à sélectionner une cellule au début de la macro (le bouton perd ainsi le focus) :
Private Sub CommandButton1_Click()
Cells(1).Select
Range("A1").Copy Range("B3")
End Sub
Si le fait de modifier la cellule active est gênant, vous pouvez aussi modifier les propriétés du bouton pour lui interdire de prendre le focus :
En mode création, double cliquez sur le bouton pour accéder au code associé au bouton.
Affichage / Fenetre Propriétés permet d'afficher (si ce n'est déjà fait) les propriétés du bouton.
Il suffit de passer à False la propriété TakeFocusOnClick du bouton.


Source: Voir ici pour plus d'info, de précision, de détail...



Au plaisir de te lire,


VB_T
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Macro

Bonjour le fil, bonjour le forum,

Peut-être comme ça :
La propriété Accelerator du bouton (= p) permet de remplacer le clic de la souris par le raccourci clavier [Alt]+[P].
 

Pièces jointes

  • Schaps_v02.xls
    139.5 KB · Affichages: 36

Discussions similaires

Réponses
26
Affichages
404
Réponses
24
Affichages
428

Statistiques des forums

Discussions
312 300
Messages
2 087 000
Membres
103 429
dernier inscrit
PhilippeH