OVH Cloud OVH Cloud

Annulation procedure

7 réponses
Avatar
Pierre.M
Bonsoir tous,

Une procedure evenementielle se lance sur double clic dans une cellule
quelconque. Comment annuler le resultat de cette procedure pour revenir
a la situation de depart, et ceci par un nouveau double clic dans cette
meme cellule. Un peu comme si le double clic etait un interrupteur
on/off.

Possible? Pas possible?

Merci d'avance de me preter vos idees.

Pierre

7 réponses

Avatar
lSteph
Bonsoir,

Lorsque tu sors d'une macro , il n'y a rien à annuler coté utilisateur
puisque c'est la macro qui a éxécuté.
Pour annuler les actions faites par ta macro il faut être capable de refaire
l'inverse de ta macro...pas toujours très simple!

Bon courage.

lSteph
"Pierre.M" a écrit dans le message de news:
4488982f$0$859$
Bonsoir tous,

Une procedure evenementielle se lance sur double clic dans une cellule
quelconque. Comment annuler le resultat de cette procedure pour revenir a
la situation de depart, et ceci par un nouveau double clic dans cette meme
cellule. Un peu comme si le double clic etait un interrupteur on/off.

Possible? Pas possible?

Merci d'avance de me preter vos idees.

Pierre



Avatar
Yvan
Bonjour Pierre et lSteph.

lSteph a raison mais, au lieu de revenir en arrière, il y a peut-être moyen de
mémoriser avant la première action l'état de la feuille et/ou du classeur, et de
restituer cet état en cas d'annulation.

Celà peut se faire par exemple en relevant le contenu des cellules susceptibles
de varier pendant la manip dans des variables de portée suffisante.

Un autre moyen, plus "bestial", serait de faire une sauvegarde de la feuille ou
du classeur complet(s), et de restaurer le cas échéant. Evidemment dans ce cas,
les autres modif, indépendantes de l'action générée par le double-clic, seraient
perdues.

Il y a peut-être un juste milieu à trouver.

Bonne journée. @ +

Yvan

"lSteph" a écrit dans le message de news:
%
Bonsoir,

Lorsque tu sors d'une macro , il n'y a rien à annuler coté utilisateur puisque
c'est la macro qui a éxécuté.
Pour annuler les actions faites par ta macro il faut être capable de refaire
l'inverse de ta macro...pas toujours très simple!

Bon courage.

lSteph
"Pierre.M" a écrit dans le message de news:
4488982f$0$859$
Bonsoir tous,

Une procedure evenementielle se lance sur double clic dans une cellule
quelconque. Comment annuler le resultat de cette procedure pour revenir a la
situation de depart, et ceci par un nouveau double clic dans cette meme
cellule. Un peu comme si le double clic etait un interrupteur on/off.

Possible? Pas possible?

Merci d'avance de me preter vos idees.

Pierre







Avatar
Fredo P
Et, que pense leSteph de la fonction Undo ?

"lSteph" a écrit dans le message de news:
#
Bonsoir,

Lorsque tu sors d'une macro , il n'y a rien à annuler coté utilisateur
puisque c'est la macro qui a éxécuté.
Pour annuler les actions faites par ta macro il faut être capable de
refaire

l'inverse de ta macro...pas toujours très simple!

Bon courage.

lSteph
"Pierre.M" a écrit dans le message de news:
4488982f$0$859$
Bonsoir tous,

Une procedure evenementielle se lance sur double clic dans une cellule
quelconque. Comment annuler le resultat de cette procedure pour revenir
a


la situation de depart, et ceci par un nouveau double clic dans cette
meme


cellule. Un peu comme si le double clic etait un interrupteur on/off.

Possible? Pas possible?

Merci d'avance de me preter vos idees.

Pierre







Avatar
lSteph
Bonjour,

... "refaire l'inverse de ta macro",
il ne s'agit évidemment pas d'execution à rebours, mais de restitution d'un
état précédent
il est clair que lon de va pas trouver de méthode désouvrir et défermer les
25 fichiers du
répertoire traité par exemple , ni déconsolider, ni arracher le collage
spécial valeur multiplication
que l'on a fait dans différentes plages.

Selon un cas bien trop simpliste, si la macro consiste à activer une autre
cellule
stocker l'adresse de la cellule active pour y revenir,
ou comme décrit Yvan , si seul une feuille est modifiée, le contournement
passerait probablement par une copie provisoire de la feuille concernée que
la macro restitue si
l'on execute immédiatement une procèdure prévue à cet effet.
Mais attention, si l'utilisateur n'a pas annulé et, si l'on a ainsi une
macro qui fait ses petites copies
à droite à gauche, il faut aussi prévoir de s'en débarrasser à la sortie
(before close par exemple).

Donc à raison de macros très très simples cela demande déjà plus compliqué,
alors au delà , ... je disais... "bon courage".

Cordialement.

lSteph






"lSteph" a écrit dans le message de news:
%
Bonsoir,

Lorsque tu sors d'une macro , il n'y a rien à annuler coté utilisateur
puisque c'est la macro qui a éxécuté.
Pour annuler les actions faites par ta macro il faut être capable de
refaire l'inverse de ta macro...pas toujours très simple!

Bon courage.

lSteph
"Pierre.M" a écrit dans le message de news:
4488982f$0$859$
Bonsoir tous,

Une procedure evenementielle se lance sur double clic dans une cellule
quelconque. Comment annuler le resultat de cette procedure pour revenir a
la situation de depart, et ceci par un nouveau double clic dans cette
meme cellule. Un peu comme si le double clic etait un interrupteur
on/off.

Possible? Pas possible?

Merci d'avance de me preter vos idees.

Pierre







Avatar
lSteph
C'est écrit:
Lorsque tu sors d'une macro , il n'y a rien à annuler coté utilisateur



"Fredo P" a écrit dans le message de news:
%
Et, que pense leSteph de la fonction Undo ?

"lSteph" a écrit dans le message de news:
#
Bonsoir,

Lorsque tu sors d'une macro , il n'y a rien à annuler coté utilisateur
puisque c'est la macro qui a éxécuté.
Pour annuler les actions faites par ta macro il faut être capable de
refaire

l'inverse de ta macro...pas toujours très simple!

Bon courage.

lSteph
"Pierre.M" a écrit dans le message de news:
4488982f$0$859$
Bonsoir tous,

Une procedure evenementielle se lance sur double clic dans une cellule
quelconque. Comment annuler le resultat de cette procedure pour revenir
a


la situation de depart, et ceci par un nouveau double clic dans cette
meme


cellule. Un peu comme si le double clic etait un interrupteur on/off.

Possible? Pas possible?

Merci d'avance de me preter vos idees.

Pierre











Avatar
Galatajoe
Bonjour je me mêle d ela conversation un peu tard mais personnelement j'ai
renoncé à faire "macro arrière"; Il est plus simple de réserver une plage
dans la même feuille traitée pour recopier avant les données traitées par la
macro.
Comme ça, j'ai dispo dans chaque feuille un Avant et un Après.
C'est aussi utile des fois pour déboguer dans l'éditeur, ça parle souvent
plus.
Après une petite macro pour effacer ces "zones" de copie, et hop.
Mais c'est vrai que la macro qui revient au point de départ est souvent
plus fastidieuse que l'originale.
Bon Courage


Bonjour,

.... "refaire l'inverse de ta macro",
il ne s'agit évidemment pas d'execution à rebours, mais de restitution d'un
état précédent
il est clair que lon de va pas trouver de méthode désouvrir et défermer les
25 fichiers du
répertoire traité par exemple , ni déconsolider, ni arracher le collage
spécial valeur multiplication
que l'on a fait dans différentes plages.

Selon un cas bien trop simpliste, si la macro consiste à activer une autre
cellule
stocker l'adresse de la cellule active pour y revenir,
ou comme décrit Yvan , si seul une feuille est modifiée, le contournement
passerait probablement par une copie provisoire de la feuille concernée que
la macro restitue si
l'on execute immédiatement une procèdure prévue à cet effet.
Mais attention, si l'utilisateur n'a pas annulé et, si l'on a ainsi une
macro qui fait ses petites copies
à droite à gauche, il faut aussi prévoir de s'en débarrasser à la sortie
(before close par exemple).

Donc à raison de macros très très simples cela demande déjà plus compliqué,
alors au delà , ... je disais... "bon courage".

Cordialement.

lSteph






"lSteph" a écrit dans le message de news:
%
Bonsoir,

Lorsque tu sors d'une macro , il n'y a rien à annuler coté utilisateur
puisque c'est la macro qui a éxécuté.
Pour annuler les actions faites par ta macro il faut être capable de
refaire l'inverse de ta macro...pas toujours très simple!

Bon courage.

lSteph
"Pierre.M" a écrit dans le message de news:
4488982f$0$859$
Bonsoir tous,

Une procedure evenementielle se lance sur double clic dans une cellule
quelconque. Comment annuler le resultat de cette procedure pour revenir a
la situation de depart, et ceci par un nouveau double clic dans cette
meme cellule. Un peu comme si le double clic etait un interrupteur
on/off.

Possible? Pas possible?

Merci d'avance de me preter vos idees.

Pierre












Avatar
Pierre.M
Merci a tous pour votre aide. Je n'envisageais pas les choses ainsi.
Cela m'ouvre de nouvelles pistes de reflexion... Merci encore.

Pierre


On 2006-06-08 23:35:45 +0200, Pierre.M said:

Bonsoir tous,

Une procedure evenementielle se lance sur double clic dans une cellule
quelconque. Comment annuler le resultat de cette procedure pour revenir
a la situation de depart, et ceci par un nouveau double clic dans cette
meme cellule. Un peu comme si le double clic etait un interrupteur
on/off.

Possible? Pas possible?

Merci d'avance de me preter vos idees.

Pierre