Annuler l'action d'une macro

T

Thilam

Guest
Bonjour à tous,

J'ai écrit une macro excel pour me fabriquer une fonction de recopie 'intelligente' qui ne copie que les formules, les formats et alignements de nombres (pour éviter de casser la mise en forme des tableaux). Elle intéresse d'autres personnes mais je ne voudrais pas la diffuser sans qu'il soit possible d'annuler l'action effectuée (comme pour n'importe quelle fonction excel).

1/ Est-ce qu'une fonction de ce type existe déjà (avec annulation possible)? Auquel cas je suis preneur, quitte à l'adapter.

2/Comment faire pour mémoriser quelque part la plage de cellules dans son état initial afin de pouvoir l'utiliser dans la macro de retour en arrière (sans créer une autre feuille de calcul et faire un copier coller bien sûr)? Est-ce qu'on peut utiliser un tableau dans VBA et comment fait-on?

3/Est-ce qu'il y a une autre solution pour revenir en arrière? (Je ne sais pas comment procède excel pour annuler les actions effectuées)

Bien sûr, une fois le pb règlè, si la macro intéresse quelqu'un...

Merci et joyeuses fêtes
Thilam
 
J

Jacky

Guest
Que C... je fais, j'oublie de te donner les dits renseignements

La commande Annuler de l'interface utilisateur utilise la méthode UndoAction. Par exemple, si vous collez du texte dans le contrôle TextBox, vous pouvez utiliser UndoAction pour retirer ce texte et restaurer le contenu précédent du contrôle TextBox.

Toutes les actions utilisateur ne peuvent pas être annulées. Si une action ne peut pas être annulée, la commande Annuler est indisponible à la suite de cette action.
 
T

Thilam

Guest
Salut jacky, et merci de te pencher sur mon cas.

Apparemment la méthode undoaction ne fonctionne qu'avec les formulaires.

Dans mon cas, il faudrait pouvoir restaurer, par exemple, la plage a2:c350 telle qu'elle était avant que la macro ne recopie les formules des cellules a2:c2 sur les 347 lignes en dessous.

je pensais peut-être pouvoir stocker le champ en question dans une variable et faire un collage à l'emplacement d'origine, lorsque l'utilisateur fait édition/annuler. Je me débrouille plutôt bien en Excel pur mais je ne suis pas un pro du VBA.
Cdt
Thilam
 

Discussions similaires

Réponses
26
Affichages
497
Réponses
4
Affichages
227

Statistiques des forums

Discussions
312 496
Messages
2 088 976
Membres
103 995
dernier inscrit
Flodk