Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Déterminer quelle action de l'utilisateur a déclenché un événeme nt

5 réponses
Avatar
arbiel
Bonjour à tous

Jai écrit des procédures évenementielles (en VBA sous Word).

Je désire savoir quelle action de l'utilisateur a déclenché l'événement.

Plus précisément : je veux intercepter les enregistrements d'un document
pour mettre à jour automatiquement ses propriétés à partir de zones
prédéfinies du document (le nom de l'auteur, les mots clés, ....). J'ai
besoin de savoir si l'action a été déclenché par
1) la commande "Enregistrer" du menu Fichier
2) la commande "Enregistrer sous"
3) l'enregistrement automatique
4) un bouton "Enregristrer" d'une barre d'outils

Quelqu'un peut-il me dire où se trouve ce type d'information ?

D'avance merci

5 réponses

Avatar
Geo

Bonjour à tous

J'ai écrit des procédures évenementielles (en VBA sous Word).

Je désire savoir quelle action de l'utilisateur a déclenché l'événement.

Plus précisément : je veux intercepter les enregistrements d'un document
pour mettre à jour automatiquement ses propriétés à partir de zones
prédéfinies du document (le nom de l'auteur, les mots clés, ....). J'ai
besoin de savoir si l'action a été déclenché par
1) la commande "Enregistrer" du menu Fichier
2) la commande "Enregistrer sous"
3) l'enregistrement automatique
4) un bouton "Enregistrer" d'une barre d'outils


J'ai bien peur qu tu en demandes trop.
On peut faire une macro de "surcharge" de la fonction enregistrement
Sub FileSave()
' mise à jour des propriétés
ActiveDocument.Save
end sub
mais elle ne distingue pas le 1 du 4.

idem pour FaileSaveAs pour le 2

Amha le 3 n'a aucun intérêt car normalement on n'a pas à utiliser la
copie de secours.


--
A+

Avatar
arbiel
Bonjour à tous, et rebonjour à Géo et à qui vont de nouveau tous mes
remerciements (je viens de commenter mon autre message)

J'ai fait quelques tests qui semblent indiquer que l'on peut renseigner la
propriété "OnAction" des boutons, popUp, etc.. Ceci ayant été fait, Word
active la procédure ainsi désignée. On peut déduire ce que veut l'utilisateur
soit par l'utilisation de procédures différentes, soit par le biais de la
propriété "Parameter".

Je dis "semblent", car je ne comprends pas bien comment Word gère les barres
de menus.

Une question subsiste : quel sera le comportement de Word à la fin de la
procédure utilisateur : s'arrêtera-t-il ou poursuivra-t-il avec l'action
"intégrée" ?

Mais encore faut-il repérer dans l'ensemble des barres de commandes, tous
les objets (Controlx ?) qui déclenchent l'enregistrement d'un fichier. Mais
ceci est un autre problème. On doit pouvoir utiliser la commande
FindControls, mais permet-elle de rechercher par le paramètre "Caption" ? A
voir




Bonjour à tous

J'ai écrit des procédures évenementielles (en VBA sous Word).

Je désire savoir quelle action de l'utilisateur a déclenché l'événement.

Plus précisément : je veux intercepter les enregistrements d'un document
pour mettre à jour automatiquement ses propriétés à partir de zones
prédéfinies du document (le nom de l'auteur, les mots clés, ....). J'ai
besoin de savoir si l'action a été déclenché par
1) la commande "Enregistrer" du menu Fichier
2) la commande "Enregistrer sous"
3) l'enregistrement automatique
4) un bouton "Enregistrer" d'une barre d'outils


J'ai bien peur qu tu en demandes trop.
On peut faire une macro de "surcharge" de la fonction enregistrement
Sub FileSave()
' mise à jour des propriétés
ActiveDocument.Save
end sub
mais elle ne distingue pas le 1 du 4.

idem pour FaileSaveAs pour le 2

Amha le 3 n'a aucun intérêt car normalement on n'a pas à utiliser la
copie de secours.


--
A+






Avatar
Geo


J'ai fait quelques tests qui semblent indiquer que l'on peut renseigner la
propriété "OnAction" des boutons, popUp, etc..


Le OnAction indique la macro lancée quand on clique dans les menus
qu'on se fait. Je n'arrive plus à te suivre.


--
A+

Avatar
arbiel
Bonjour Géo

Je comprends que mes messages puissent paraître confus. J'ai eu beaucoup du
mal à comprendre l'organisation des menus et je suis venu chercher des
éclaircissements dans ce forum.

Dans le même temps, je continue de chercher la solution à mes problèmes en
m'appuyant sur l'aide en ligne et en faisant des tests pour vérifier ma
compréhension des explications données dans cette aide.

J'en suis arrivé à ceci.

La propriété OnAction peut être appliquée à un "COntrolX" crée par
l'utilisateur, mais aussi à une commande "BuilIn".

D'après les tests que j'ai exécutés, l'application de OnAction aux boutons
"Enregistrer" et "Enregistrer sous ..." du menu fichier de Word permet de
définir la procédure à exécuter lorsque l'utilisateur utilise l'un ou l'autre
de ces deux boutons pour demander l'enregistrement d'un fichier.

Ceci résoudrait donc mon problème, mais je ne suis pas sûr d'avoir
parfaitement compris, les explications de l'aide en ligne étant souvent, à
mon sens, très insuffisantes (je suis un simple utilisateur essayant
d'automatiser quelques tâches pour introduire des standards de travail dans
une petite société).

Je trouve que la programmation en VBA, pour Word ou pour Excel, est
extrêmement frustrante et qu'il faut énormément de temps pour faire quoi que
ce soit.

Merci encore de vous intéresser à mes difficultés.

Arbiel




J'ai fait quelques tests qui semblent indiquer que l'on peut renseigner la
propriété "OnAction" des boutons, popUp, etc..


Le OnAction indique la macro lancée quand on clique dans les menus
qu'on se fait. Je n'arrive plus à te suivre.


--
A+






Avatar
Geo

D'après les tests que j'ai exécutés, l'application de OnAction aux boutons
"Enregistrer" et "Enregistrer sous ..." du menu fichier de Word permet de
définir la procédure à exécuter lorsque l'utilisateur utilise l'un ou l'autre
de ces deux boutons pour demander l'enregistrement d'un fichier.


Je vais me répéter mais s'il s'agit simplement de savoir si on fait
enregistrer ou enregistrer sous, sans s'occuper comme ça a été fait (il
y a les raccourcis aussi) essaie :
Sub FileSave()
msgbox "Fonction Enregistrer"
ActiveDocument.Save
end sub
Sub FileSaveAs()
msgbox "Fonction Enregistrer Sous "
ActiveDocument.Saveas
end sub


Je trouve que la programmation en VBA, pour Word ou pour Excel, est
extrêmement frustrante et qu'il faut énormément de temps pour faire quoi que
ce soit.


Ca doit être pour cela qu'on a inventé les forums.

Sur la question de la cohérence, on peut tout faire si on sait
récupérer les données qui servent à cette vérification.
Soit c'est à un emplacement précis, tableau par exemple, soit c'est
repérable par le texte autour, soit on fait des zones de texte, soit on
pose les questions aux utilisateurs.
Mais j'ai un peu l'impression en vous lisant que vous voulez de la
rigueur dans ce qui est récupéré mais que les utilisateurs mettent
n'importe quoi.
Si vous mettez des signets et que l'opérateur ne met rien dessus, vous
avez bonne mine !


--
A+