OVH Cloud OVH Cloud

OnAction

12 réponses
Avatar
Benoit
Bonjour toutes et tous,
Afin de retrouv=E9 chaque fois une macro compl=E9mentaire, je=20
dois utilis=E9 la commande "OnAction". Pas de probl=E8me avec=20
un Command-Button. Je l'affecte a l'=E9v=E8nement Click.
Mais voila, la macro compl=E9mentaire est lanc=E9e a partir=20
d'un menu personnalis=E9. Et l=E0, pas d'=E9v=E8nement Click. O=FB=20
dois-je mettre "OnAction" ????
Une id=E9e ?
Merci,
Benoit,
Longue vie et prosp=E8re.

10 réponses

1 2
Avatar
michdenis
Bonjour Benoît,

Ta barre d'outils personnalisé a un nom "Toto"
Le bouton sur ta barre d'outils a aussi un nom "Titi"
'------------------------
With Application.CommandBars("Toto")
With .Controls("Titi")
.OnAction = "MaMacro"
End With
End With
'------------------------


Et si ton bouton de commande est ajouté à la barre de menu de la feuille de calcul excel comme élément du sous menu
"Insertion", tu peux utiliser ce qui suit :
'------------------------
With Application.CommandBars("worksheet menu bar").Controls("&Insertion")
With .Controls("Titi")
.OnAction = "MaMacro"
End With
End With
'------------------------


Salutations!


"Benoit" a écrit dans le message de news:1bad01c48ceb$2db953a0$
Bonjour toutes et tous,
Afin de retrouvé chaque fois une macro complémentaire, je
dois utilisé la commande "OnAction". Pas de problème avec
un Command-Button. Je l'affecte a l'évènement Click.
Mais voila, la macro complémentaire est lancée a partir
d'un menu personnalisé. Et là, pas d'évènement Click. Oû
dois-je mettre "OnAction" ????
Une idée ?
Merci,
Benoit,
Longue vie et prospère.
Avatar
Bonjour et merci,
Encore une petite précision STP.
D'abord merci, je pense que c'est exactement ce que je
cherchais.
Ou puis-je mettre ce code. Pas dans un classeur, bien
sur. Dans une macro complémentaire ???

Longue vie et prospère

-----Original Message-----
Bonjour Benoît,

Ta barre d'outils personnalisé a un nom "Toto"
Le bouton sur ta barre d'outils a aussi un nom "Titi"
'------------------------
With Application.CommandBars("Toto")
With .Controls("Titi")
.OnAction = "MaMacro"
End With
End With
'------------------------


Et si ton bouton de commande est ajouté à la barre de
menu de la feuille de calcul excel comme élément du sous

menu
"Insertion", tu peux utiliser ce qui suit :
'------------------------
With Application.CommandBars("worksheet menu
bar").Controls("&Insertion")

With .Controls("Titi")
.OnAction = "MaMacro"
End With
End With
'------------------------


Salutations!


"Benoit" a écrit dans
le message de news:1bad01c48ceb$2db953a0

$
Bonjour toutes et tous,
Afin de retrouvé chaque fois une macro complémentaire, je
dois utilisé la commande "OnAction". Pas de problème avec
un Command-Button. Je l'affecte a l'évènement Click.
Mais voila, la macro complémentaire est lancée a partir
d'un menu personnalisé. Et là, pas d'évènement Click. Oû
dois-je mettre "OnAction" ????
Une idée ?
Merci,
Benoit,
Longue vie et prospère.


.



Avatar
michdenis,

J'ai fais bcq d'esais. Il manque quelque chose.
On est sur le bon chemin.
Ne me laisse pas tomber.

Longue vie et prospère

-----Original Message-----
Bonjour et merci,
Encore une petite précision STP.
D'abord merci, je pense que c'est exactement ce que je
cherchais.
Ou puis-je mettre ce code. Pas dans un classeur, bien
sur. Dans une macro complémentaire ???

Longue vie et prospère

-----Original Message-----
Bonjour Benoît,

Ta barre d'outils personnalisé a un nom "Toto"
Le bouton sur ta barre d'outils a aussi un nom "Titi"
'------------------------
With Application.CommandBars("Toto")
With .Controls("Titi")
.OnAction = "MaMacro"
End With
End With
'------------------------


Et si ton bouton de commande est ajouté à la barre de
menu de la feuille de calcul excel comme élément du sous

menu
"Insertion", tu peux utiliser ce qui suit :
'------------------------
With Application.CommandBars("worksheet menu
bar").Controls("&Insertion")

With .Controls("Titi")
.OnAction = "MaMacro"
End With
End With
'------------------------


Salutations!


"Benoit" a écrit dans
le message de news:1bad01c48ceb$2db953a0

$
Bonjour toutes et tous,
Afin de retrouvé chaque fois une macro complémentaire,
je


dois utilisé la commande "OnAction". Pas de problème
avec


un Command-Button. Je l'affecte a l'évènement Click.
Mais voila, la macro complémentaire est lancée a partir
d'un menu personnalisé. Et là, pas d'évènement Click. Oû
dois-je mettre "OnAction" ????
Une idée ?
Merci,
Benoit,
Longue vie et prospère.


.

.





Avatar
michdenis
Bonjour,

"Dans une macro complémentaire"

**** Cela dépend de ton application ...

Si ta macro est présente à l'ouverture d'excel (fichier.xla chargé), il n'y a pas de problème ...Si par contre ton fichier
.xla est chargé seulement quand un fichier .xls particulier est ouvert .... alors la macro ne sera disponible que lorsque ton
fichier xla sera chargé...

Si tu travailles seulement à partir tu même PC, tu peux copier ces procédures dans le Perso.xls ...

Je ne peux pas savoir à quoi et dans quelles circonstances tu désires faire intervenir cette macro et ta barre d'outils
personnalisée.


Salutations!




a écrit dans le message de news:1c0b01c48cfa$3dacbd60$
Bonjour et merci,
Encore une petite précision STP.
D'abord merci, je pense que c'est exactement ce que je
cherchais.
Ou puis-je mettre ce code. Pas dans un classeur, bien
sur. Dans une macro complémentaire ???

Longue vie et prospère

-----Original Message-----
Bonjour Benoît,

Ta barre d'outils personnalisé a un nom "Toto"
Le bouton sur ta barre d'outils a aussi un nom "Titi"
'------------------------
With Application.CommandBars("Toto")
With .Controls("Titi")
.OnAction = "MaMacro"
End With
End With
'------------------------


Et si ton bouton de commande est ajouté à la barre de
menu de la feuille de calcul excel comme élément du sous

menu
"Insertion", tu peux utiliser ce qui suit :
'------------------------
With Application.CommandBars("worksheet menu
bar").Controls("&Insertion")

With .Controls("Titi")
.OnAction = "MaMacro"
End With
End With
'------------------------


Salutations!


"Benoit" a écrit dans
le message de news:1bad01c48ceb$2db953a0

$
Bonjour toutes et tous,
Afin de retrouvé chaque fois une macro complémentaire, je
dois utilisé la commande "OnAction". Pas de problème avec
un Command-Button. Je l'affecte a l'évènement Click.
Mais voila, la macro complémentaire est lancée a partir
d'un menu personnalisé. Et là, pas d'évènement Click. Oû
dois-je mettre "OnAction" ????
Une idée ?
Merci,
Benoit,
Longue vie et prospère.


.



Avatar
michdenis
Il manque quelque chose
*** et encore ... qu'est-ce que tu as fait ... et qu'est-ce que tu veux obtenir ? Ça prend des détails !


Salutations!


a écrit dans le message de news:1d5801c48cfe$1c973570$
michdenis,

J'ai fais bcq d'esais. Il manque quelque chose.
On est sur le bon chemin.
Ne me laisse pas tomber.

Longue vie et prospère

-----Original Message-----
Bonjour et merci,
Encore une petite précision STP.
D'abord merci, je pense que c'est exactement ce que je
cherchais.
Ou puis-je mettre ce code. Pas dans un classeur, bien
sur. Dans une macro complémentaire ???

Longue vie et prospère

-----Original Message-----
Bonjour Benoît,

Ta barre d'outils personnalisé a un nom "Toto"
Le bouton sur ta barre d'outils a aussi un nom "Titi"
'------------------------
With Application.CommandBars("Toto")
With .Controls("Titi")
.OnAction = "MaMacro"
End With
End With
'------------------------


Et si ton bouton de commande est ajouté à la barre de
menu de la feuille de calcul excel comme élément du sous

menu
"Insertion", tu peux utiliser ce qui suit :
'------------------------
With Application.CommandBars("worksheet menu
bar").Controls("&Insertion")

With .Controls("Titi")
.OnAction = "MaMacro"
End With
End With
'------------------------


Salutations!


"Benoit" a écrit dans
le message de news:1bad01c48ceb$2db953a0

$
Bonjour toutes et tous,
Afin de retrouvé chaque fois une macro complémentaire,
je


dois utilisé la commande "OnAction". Pas de problème
avec


un Command-Button. Je l'affecte a l'évènement Click.
Mais voila, la macro complémentaire est lancée a partir
d'un menu personnalisé. Et là, pas d'évènement Click. Oû
dois-je mettre "OnAction" ????
Une idée ?
Merci,
Benoit,
Longue vie et prospère.


.

.





Avatar
Benoit
Voila michdenis.
Les macros complémentaires sont chargées au démarrage
d'Excel.

Dans "Personnalisé", "Commande", j'ai ajouté un nouveau
menu auquel, j'ai rajouté des "éléments de menu
personnalisés".

A chaque "éléments de menu personnalisés" est assigné une
macro (xla).

Et voila. Manque plus qu'a placé "OnAction" au bon
endroit. Et c'est pour cela que j'ai besoin de ton aide.

Merci de m'aider. Benoit,
Longue vie et prospère.

-----Original Message-----
Bonjour,

"Dans une macro complémentaire"

**** Cela dépend de ton application ...

Si ta macro est présente à l'ouverture d'excel
(fichier.xla chargé), il n'y a pas de problème ...Si par

contre ton fichier
..xla est chargé seulement quand un fichier .xls
particulier est ouvert .... alors la macro ne sera

disponible que lorsque ton
fichier xla sera chargé...

Si tu travailles seulement à partir tu même PC, tu peux
copier ces procédures dans le Perso.xls ...


Je ne peux pas savoir à quoi et dans quelles
circonstances tu désires faire intervenir cette macro et

ta barre d'outils
personnalisée.


Salutations!




a écrit dans le
message de news:1c0b01c48cfa$3dacbd60$

Bonjour et merci,
Encore une petite précision STP.
D'abord merci, je pense que c'est exactement ce que je
cherchais.
Ou puis-je mettre ce code. Pas dans un classeur, bien
sur. Dans une macro complémentaire ???

Longue vie et prospère

-----Original Message-----
Bonjour Benoît,

Ta barre d'outils personnalisé a un nom "Toto"
Le bouton sur ta barre d'outils a aussi un nom "Titi"
'------------------------
With Application.CommandBars("Toto")
With .Controls("Titi")
.OnAction = "MaMacro"
End With
End With
'------------------------


Et si ton bouton de commande est ajouté à la barre de
menu de la feuille de calcul excel comme élément du sous

menu
"Insertion", tu peux utiliser ce qui suit :
'------------------------
With Application.CommandBars("worksheet menu
bar").Controls("&Insertion")

With .Controls("Titi")
.OnAction = "MaMacro"
End With
End With
'------------------------


Salutations!


"Benoit" a écrit dans
le message de news:1bad01c48ceb$2db953a0

$
Bonjour toutes et tous,
Afin de retrouvé chaque fois une macro complémentaire,
je


dois utilisé la commande "OnAction". Pas de problème
avec


un Command-Button. Je l'affecte a l'évènement Click.
Mais voila, la macro complémentaire est lancée a partir
d'un menu personnalisé. Et là, pas d'évènement Click. Oû
dois-je mettre "OnAction" ????
Une idée ?
Merci,
Benoit,
Longue vie et prospère.


.




.




Avatar
michdenis
Bonjour Benoît,

Pour faire simple,

Affiche la boîte "personnaliser" par un double clic dans l'espace des barres d'outils de ton application ou par un clic droit
sur cette zone / menu personnaliser.

Lorsque la fenêtre est affichée, un clic droit sur le bouton de commande ou sur l'item du menu et dans la liste déroulante,
tu sélectionnes "Affecter une macro"

Il ne te reste plus qu'à insérer le nom de la macro. Si ces dernières sont situées dans un classeur.xla, tu fais précéder le
nom de la macro par le nom du classeur comme ceci

Bonjour.xla --> Nom du classeur
Bonjour ---> Nom de la macro

Tu insères : Bonjour.xla!Bonjour

Voilà c'est terminé.

P.S. Je sais, tu ne te souviens plus du nom exact de tes macros dans ton fichier .xla.
Tu ouvres VBE (visual basic editor) et à partir de la barre d'outils Standard de cette fenêtre, tu appelles l'explorateur de
projet.

Dans cette fenêtre , dans la permière liste déroulante (celle du haut) tu sélectionnes : toutes les bibliothèques et dans la
section du bas, devrait apparaître en caractère gras, les noms des fonctions et procédures de ton classeur.xla

Dans la colonne "Class" , tu clique sur le nom du module "exemple : Module1" et tu vois apparaître le nom de toutes les
procédures et fonctions dans la fenêtre de droite SAUF si tu as des procédures dont la déclaration porte le mot "private"
comme dans Private sub toto() ...


Salutations!



"Benoit" a écrit dans le message de news:1e6001c48d06$837f8870$
Voila michdenis.
Les macros complémentaires sont chargées au démarrage
d'Excel.

Dans "Personnalisé", "Commande", j'ai ajouté un nouveau
menu auquel, j'ai rajouté des "éléments de menu
personnalisés".

A chaque "éléments de menu personnalisés" est assigné une
macro (xla).

Et voila. Manque plus qu'a placé "OnAction" au bon
endroit. Et c'est pour cela que j'ai besoin de ton aide.

Merci de m'aider. Benoit,
Longue vie et prospère.

-----Original Message-----
Bonjour,

"Dans une macro complémentaire"

**** Cela dépend de ton application ...

Si ta macro est présente à l'ouverture d'excel
(fichier.xla chargé), il n'y a pas de problème ...Si par

contre ton fichier
..xla est chargé seulement quand un fichier .xls
particulier est ouvert .... alors la macro ne sera

disponible que lorsque ton
fichier xla sera chargé...

Si tu travailles seulement à partir tu même PC, tu peux
copier ces procédures dans le Perso.xls ...


Je ne peux pas savoir à quoi et dans quelles
circonstances tu désires faire intervenir cette macro et

ta barre d'outils
personnalisée.


Salutations!




a écrit dans le
message de news:1c0b01c48cfa$3dacbd60$

Bonjour et merci,
Encore une petite précision STP.
D'abord merci, je pense que c'est exactement ce que je
cherchais.
Ou puis-je mettre ce code. Pas dans un classeur, bien
sur. Dans une macro complémentaire ???

Longue vie et prospère

-----Original Message-----
Bonjour Benoît,

Ta barre d'outils personnalisé a un nom "Toto"
Le bouton sur ta barre d'outils a aussi un nom "Titi"
'------------------------
With Application.CommandBars("Toto")
With .Controls("Titi")
.OnAction = "MaMacro"
End With
End With
'------------------------


Et si ton bouton de commande est ajouté à la barre de
menu de la feuille de calcul excel comme élément du sous

menu
"Insertion", tu peux utiliser ce qui suit :
'------------------------
With Application.CommandBars("worksheet menu
bar").Controls("&Insertion")

With .Controls("Titi")
.OnAction = "MaMacro"
End With
End With
'------------------------


Salutations!


"Benoit" a écrit dans
le message de news:1bad01c48ceb$2db953a0

$
Bonjour toutes et tous,
Afin de retrouvé chaque fois une macro complémentaire,
je


dois utilisé la commande "OnAction". Pas de problème
avec


un Command-Button. Je l'affecte a l'évènement Click.
Mais voila, la macro complémentaire est lancée a partir
d'un menu personnalisé. Et là, pas d'évènement Click. Oû
dois-je mettre "OnAction" ????
Une idée ?
Merci,
Benoit,
Longue vie et prospère.


.




.




Avatar
Benoit
Re Tres cher michdenis.
C'est exactement comme cela que je procède jusqu'a
présent. Mais ce n'est pas fiable.
Régulièrement, il cherche la macro xla dans un classeur.
Bref il perd le chemin de la macro. Ensuite je dois re re
refaire comme tu l'as décrit. C'est pour éviter
définitivement ce probleme que je souhaite utilisé la
commande "OnAction"

Ta première proposition m'avais fait entrevoir une
solution.

Il faut partir de là.

Note : cela fait 3 ans que je cherche. J'ai régulièrement
posé cette question ici. Tu es le seul m'avoir donné
espoir.
Si tu le permet, on pourrait utilisé un utilitaire de
commniquation par internet afin d'en débattre de vive
voix. Il va de soit que si une solution est trouvée, j'en
ferai part a tous.

Longue vie et prospère

Benoît,
-----Original Message-----
Bonjour Benoît,

Pour faire simple,

Affiche la boîte "personnaliser" par un double clic dans
l'espace des barres d'outils de ton application ou par un

clic droit
sur cette zone / menu personnaliser.

Lorsque la fenêtre est affichée, un clic droit sur le
bouton de commande ou sur l'item du menu et dans la liste

déroulante,
tu sélectionnes "Affecter une macro"

Il ne te reste plus qu'à insérer le nom de la macro. Si
ces dernières sont situées dans un classeur.xla, tu fais

précéder le
nom de la macro par le nom du classeur comme ceci

Bonjour.xla --> Nom du classeur
Bonjour ---> Nom de la macro

Tu insères : Bonjour.xla!Bonjour

Voilà c'est terminé.

P.S. Je sais, tu ne te souviens plus du nom exact de tes
macros dans ton fichier .xla.

Tu ouvres VBE (visual basic editor) et à partir de la
barre d'outils Standard de cette fenêtre, tu appelles

l'explorateur de
projet.

Dans cette fenêtre , dans la permière liste déroulante
(celle du haut) tu sélectionnes : toutes les

bibliothèques et dans la
section du bas, devrait apparaître en caractère gras,
les noms des fonctions et procédures de ton classeur.xla


Dans la colonne "Class" , tu clique sur le nom du
module "exemple : Module1" et tu vois apparaître le nom

de toutes les
procédures et fonctions dans la fenêtre de droite SAUF
si tu as des procédures dont la déclaration porte le

mot "private"
comme dans Private sub toto() ...


Salutations!



"Benoit" a écrit
dans le message de news:1e6001c48d06$837f8870

$
Voila michdenis.
Les macros complémentaires sont chargées au démarrage
d'Excel.

Dans "Personnalisé", "Commande", j'ai ajouté un nouveau
menu auquel, j'ai rajouté des "éléments de menu
personnalisés".

A chaque "éléments de menu personnalisés" est assigné une
macro (xla).

Et voila. Manque plus qu'a placé "OnAction" au bon
endroit. Et c'est pour cela que j'ai besoin de ton aide.

Merci de m'aider. Benoit,
Longue vie et prospère.

-----Original Message-----
Bonjour,

"Dans une macro complémentaire"

**** Cela dépend de ton application ...

Si ta macro est présente à l'ouverture d'excel
(fichier.xla chargé), il n'y a pas de problème ...Si par

contre ton fichier
..xla est chargé seulement quand un fichier .xls
particulier est ouvert .... alors la macro ne sera

disponible que lorsque ton
fichier xla sera chargé...

Si tu travailles seulement à partir tu même PC, tu peux
copier ces procédures dans le Perso.xls ...


Je ne peux pas savoir à quoi et dans quelles
circonstances tu désires faire intervenir cette macro et

ta barre d'outils
personnalisée.


Salutations!




a écrit dans le
message de news:1c0b01c48cfa$3dacbd60$

Bonjour et merci,
Encore une petite précision STP.
D'abord merci, je pense que c'est exactement ce que je
cherchais.
Ou puis-je mettre ce code. Pas dans un classeur, bien
sur. Dans une macro complémentaire ???

Longue vie et prospère

-----Original Message-----
Bonjour Benoît,

Ta barre d'outils personnalisé a un nom "Toto"
Le bouton sur ta barre d'outils a aussi un nom "Titi"
'------------------------
With Application.CommandBars("Toto")
With .Controls("Titi")
.OnAction = "MaMacro"
End With
End With
'------------------------


Et si ton bouton de commande est ajouté à la barre de
menu de la feuille de calcul excel comme élément du sous

menu
"Insertion", tu peux utiliser ce qui suit :
'------------------------
With Application.CommandBars("worksheet menu
bar").Controls("&Insertion")

With .Controls("Titi")
.OnAction = "MaMacro"
End With
End With
'------------------------


Salutations!


"Benoit" a écrit dans
le message de news:1bad01c48ceb$2db953a0

$
Bonjour toutes et tous,
Afin de retrouvé chaque fois une macro complémentaire,
je


dois utilisé la commande "OnAction". Pas de problème
avec


un Command-Button. Je l'affecte a l'évènement Click.
Mais voila, la macro complémentaire est lancée a partir
d'un menu personnalisé. Et là, pas d'évènement Click.




dois-je mettre "OnAction" ????
Une idée ?
Merci,
Benoit,
Longue vie et prospère.


.




.




.





Avatar
michdenis
Bonjour Benoît,


Tu utilises les macros de mon premier message, Tu places les macros dans un module standard du fichier xla. et dans ce même
fichier xla, dans son ThisWorkbook, tu utilises cet événement pour t'assurer que tes macros sont réellement liées au bouton :

Private Sub Workbook_Open()
LaMacroLiantBoutonEtMacro
End Sub

Cependant, si tu veux t'assurer que toi où un usager fasse disparaître un de ces boutons de la barre d'outils, tu dois
protéger ta barre d'outils contre toute manipulation. J'y ai ajouté une ligne de code à cet effet dans les procédures déjà
proposées.

'------------------------
With Application.CommandBars(1)
With .Controls("Titi")
.OnAction = "MonFichier.xla!MaMacro"
End With
.Protection = msoBarNoChangeVisible + msoBarNoCustomize
End With
'------------------------



Et si ton bouton de commande est ajouté à la barre de menu de la feuille de calcul excel comme élément du sous menu
"Insertion", tu peux utiliser ce qui suit :
'------------------------
With Application.CommandBars("worksheet menu bar").Controls("&Insertion")
With .Controls("Titi")
.OnAction = "MonFichier.xla!MaMacro"
End With
.Protection = msoBarNoChangeVisible + msoBarNoCustomize
End With
'------------------------


Salutations!



"Benoit" a écrit dans le message de news:1caa01c48d0f$405d2ad0$
Re Tres cher michdenis.
C'est exactement comme cela que je procède jusqu'a
présent. Mais ce n'est pas fiable.
Régulièrement, il cherche la macro xla dans un classeur.
Bref il perd le chemin de la macro. Ensuite je dois re re
refaire comme tu l'as décrit. C'est pour éviter
définitivement ce probleme que je souhaite utilisé la
commande "OnAction"

Ta première proposition m'avais fait entrevoir une
solution.

Il faut partir de là.

Note : cela fait 3 ans que je cherche. J'ai régulièrement
posé cette question ici. Tu es le seul m'avoir donné
espoir.
Si tu le permet, on pourrait utilisé un utilitaire de
commniquation par internet afin d'en débattre de vive
voix. Il va de soit que si une solution est trouvée, j'en
ferai part a tous.

Longue vie et prospère

Benoît,
-----Original Message-----
Bonjour Benoît,

Pour faire simple,

Affiche la boîte "personnaliser" par un double clic dans
l'espace des barres d'outils de ton application ou par un

clic droit
sur cette zone / menu personnaliser.

Lorsque la fenêtre est affichée, un clic droit sur le
bouton de commande ou sur l'item du menu et dans la liste

déroulante,
tu sélectionnes "Affecter une macro"

Il ne te reste plus qu'à insérer le nom de la macro. Si
ces dernières sont situées dans un classeur.xla, tu fais

précéder le
nom de la macro par le nom du classeur comme ceci

Bonjour.xla --> Nom du classeur
Bonjour ---> Nom de la macro

Tu insères : Bonjour.xla!Bonjour

Voilà c'est terminé.

P.S. Je sais, tu ne te souviens plus du nom exact de tes
macros dans ton fichier .xla.

Tu ouvres VBE (visual basic editor) et à partir de la
barre d'outils Standard de cette fenêtre, tu appelles

l'explorateur de
projet.

Dans cette fenêtre , dans la permière liste déroulante
(celle du haut) tu sélectionnes : toutes les

bibliothèques et dans la
section du bas, devrait apparaître en caractère gras,
les noms des fonctions et procédures de ton classeur.xla


Dans la colonne "Class" , tu clique sur le nom du
module "exemple : Module1" et tu vois apparaître le nom

de toutes les
procédures et fonctions dans la fenêtre de droite SAUF
si tu as des procédures dont la déclaration porte le

mot "private"
comme dans Private sub toto() ...


Salutations!



"Benoit" a écrit
dans le message de news:1e6001c48d06$837f8870

$
Voila michdenis.
Les macros complémentaires sont chargées au démarrage
d'Excel.

Dans "Personnalisé", "Commande", j'ai ajouté un nouveau
menu auquel, j'ai rajouté des "éléments de menu
personnalisés".

A chaque "éléments de menu personnalisés" est assigné une
macro (xla).

Et voila. Manque plus qu'a placé "OnAction" au bon
endroit. Et c'est pour cela que j'ai besoin de ton aide.

Merci de m'aider. Benoit,
Longue vie et prospère.

-----Original Message-----
Bonjour,

"Dans une macro complémentaire"

**** Cela dépend de ton application ...

Si ta macro est présente à l'ouverture d'excel
(fichier.xla chargé), il n'y a pas de problème ...Si par

contre ton fichier
..xla est chargé seulement quand un fichier .xls
particulier est ouvert .... alors la macro ne sera

disponible que lorsque ton
fichier xla sera chargé...

Si tu travailles seulement à partir tu même PC, tu peux
copier ces procédures dans le Perso.xls ...


Je ne peux pas savoir à quoi et dans quelles
circonstances tu désires faire intervenir cette macro et

ta barre d'outils
personnalisée.


Salutations!




a écrit dans le
message de news:1c0b01c48cfa$3dacbd60$

Bonjour et merci,
Encore une petite précision STP.
D'abord merci, je pense que c'est exactement ce que je
cherchais.
Ou puis-je mettre ce code. Pas dans un classeur, bien
sur. Dans une macro complémentaire ???

Longue vie et prospère

-----Original Message-----
Bonjour Benoît,

Ta barre d'outils personnalisé a un nom "Toto"
Le bouton sur ta barre d'outils a aussi un nom "Titi"
'------------------------
With Application.CommandBars("Toto")
With .Controls("Titi")
.OnAction = "MaMacro"
End With
End With
'------------------------


Et si ton bouton de commande est ajouté à la barre de
menu de la feuille de calcul excel comme élément du sous

menu
"Insertion", tu peux utiliser ce qui suit :
'------------------------
With Application.CommandBars("worksheet menu
bar").Controls("&Insertion")

With .Controls("Titi")
.OnAction = "MaMacro"
End With
End With
'------------------------


Salutations!


"Benoit" a écrit dans
le message de news:1bad01c48ceb$2db953a0

$
Bonjour toutes et tous,
Afin de retrouvé chaque fois une macro complémentaire,
je


dois utilisé la commande "OnAction". Pas de problème
avec


un Command-Button. Je l'affecte a l'évènement Click.
Mais voila, la macro complémentaire est lancée a partir
d'un menu personnalisé. Et là, pas d'évènement Click.




dois-je mettre "OnAction" ????
Une idée ?
Merci,
Benoit,
Longue vie et prospère.


.




.




.





Avatar
Je vais tester tout ça.
Merci.
Benoit

-----Original Message-----
Bonjour Benoît,


Tu utilises les macros de mon premier message, Tu places
les macros dans un module standard du fichier xla. et

dans ce même
fichier xla, dans son ThisWorkbook, tu utilises cet
événement pour t'assurer que tes macros sont réellement

liées au bouton :

Private Sub Workbook_Open()
LaMacroLiantBoutonEtMacro
End Sub

Cependant, si tu veux t'assurer que toi où un usager
fasse disparaître un de ces boutons de la barre d'outils,

tu dois
protéger ta barre d'outils contre toute manipulation.
J'y ai ajouté une ligne de code à cet effet dans les

procédures déjà
proposées.

'------------------------
With Application.CommandBars(1)
With .Controls("Titi")
.OnAction = "MonFichier.xla!MaMacro"
End With
.Protection = msoBarNoChangeVisible +
msoBarNoCustomize

End With
'------------------------



Et si ton bouton de commande est ajouté à la barre de
menu de la feuille de calcul excel comme élément du sous

menu
"Insertion", tu peux utiliser ce qui suit :
'------------------------
With Application.CommandBars("worksheet menu
bar").Controls("&Insertion")

With .Controls("Titi")
.OnAction = "MonFichier.xla!MaMacro"
End With
.Protection = msoBarNoChangeVisible +
msoBarNoCustomize

End With
'------------------------


Salutations!



"Benoit" a écrit dans
le message de news:1caa01c48d0f$405d2ad0

$
Re Tres cher michdenis.
C'est exactement comme cela que je procède jusqu'a
présent. Mais ce n'est pas fiable.
Régulièrement, il cherche la macro xla dans un classeur.
Bref il perd le chemin de la macro. Ensuite je dois re re
refaire comme tu l'as décrit. C'est pour éviter
définitivement ce probleme que je souhaite utilisé la
commande "OnAction"

Ta première proposition m'avais fait entrevoir une
solution.

Il faut partir de là.

Note : cela fait 3 ans que je cherche. J'ai régulièrement
posé cette question ici. Tu es le seul m'avoir donné
espoir.
Si tu le permet, on pourrait utilisé un utilitaire de
commniquation par internet afin d'en débattre de vive
voix. Il va de soit que si une solution est trouvée, j'en
ferai part a tous.

Longue vie et prospère

Benoît,
-----Original Message-----
Bonjour Benoît,

Pour faire simple,

Affiche la boîte "personnaliser" par un double clic dans
l'espace des barres d'outils de ton application ou par un

clic droit
sur cette zone / menu personnaliser.

Lorsque la fenêtre est affichée, un clic droit sur le
bouton de commande ou sur l'item du menu et dans la liste

déroulante,
tu sélectionnes "Affecter une macro"

Il ne te reste plus qu'à insérer le nom de la macro. Si
ces dernières sont situées dans un classeur.xla, tu fais

précéder le
nom de la macro par le nom du classeur comme ceci

Bonjour.xla --> Nom du classeur
Bonjour ---> Nom de la macro

Tu insères : Bonjour.xla!Bonjour

Voilà c'est terminé.

P.S. Je sais, tu ne te souviens plus du nom exact de tes
macros dans ton fichier .xla.

Tu ouvres VBE (visual basic editor) et à partir de la
barre d'outils Standard de cette fenêtre, tu appelles

l'explorateur de
projet.

Dans cette fenêtre , dans la permière liste déroulante
(celle du haut) tu sélectionnes : toutes les

bibliothèques et dans la
section du bas, devrait apparaître en caractère gras,
les noms des fonctions et procédures de ton classeur.xla


Dans la colonne "Class" , tu clique sur le nom du
module "exemple : Module1" et tu vois apparaître le nom

de toutes les
procédures et fonctions dans la fenêtre de droite SAUF
si tu as des procédures dont la déclaration porte le

mot "private"
comme dans Private sub toto() ...


Salutations!



"Benoit" a écrit
dans le message de news:1e6001c48d06$837f8870

$
Voila michdenis.
Les macros complémentaires sont chargées au démarrage
d'Excel.

Dans "Personnalisé", "Commande", j'ai ajouté un nouveau
menu auquel, j'ai rajouté des "éléments de menu
personnalisés".

A chaque "éléments de menu personnalisés" est assigné
une


macro (xla).

Et voila. Manque plus qu'a placé "OnAction" au bon
endroit. Et c'est pour cela que j'ai besoin de ton aide.

Merci de m'aider. Benoit,
Longue vie et prospère.

-----Original Message-----
Bonjour,

"Dans une macro complémentaire"

**** Cela dépend de ton application ...

Si ta macro est présente à l'ouverture d'excel
(fichier.xla chargé), il n'y a pas de problème ...Si par

contre ton fichier
..xla est chargé seulement quand un fichier .xls
particulier est ouvert .... alors la macro ne sera

disponible que lorsque ton
fichier xla sera chargé...

Si tu travailles seulement à partir tu même PC, tu peux
copier ces procédures dans le Perso.xls ...


Je ne peux pas savoir à quoi et dans quelles
circonstances tu désires faire intervenir cette macro et

ta barre d'outils
personnalisée.


Salutations!




a écrit dans le
message de news:1c0b01c48cfa$3dacbd60

$


Bonjour et merci,
Encore une petite précision STP.
D'abord merci, je pense que c'est exactement ce que je
cherchais.
Ou puis-je mettre ce code. Pas dans un classeur, bien
sur. Dans une macro complémentaire ???

Longue vie et prospère

-----Original Message-----
Bonjour Benoît,

Ta barre d'outils personnalisé a un nom "Toto"
Le bouton sur ta barre d'outils a aussi un nom "Titi"
'------------------------
With Application.CommandBars("Toto")
With .Controls("Titi")
.OnAction = "MaMacro"
End With
End With
'------------------------


Et si ton bouton de commande est ajouté à la barre de
menu de la feuille de calcul excel comme élément du

sous



menu
"Insertion", tu peux utiliser ce qui suit :
'------------------------
With Application.CommandBars("worksheet menu
bar").Controls("&Insertion")

With .Controls("Titi")
.OnAction = "MaMacro"
End With
End With
'------------------------


Salutations!


"Benoit" a écrit dans
le message de news:1bad01c48ceb$2db953a0

$
Bonjour toutes et tous,
Afin de retrouvé chaque fois une macro complémentaire,
je


dois utilisé la commande "OnAction". Pas de problème
avec


un Command-Button. Je l'affecte a l'évènement Click.
Mais voila, la macro complémentaire est lancée a
partir




d'un menu personnalisé. Et là, pas d'évènement Click.




dois-je mettre "OnAction" ????
Une idée ?
Merci,
Benoit,
Longue vie et prospère.


.




.




.




.






1 2