Annuler ou Rétablir une saisie

Bonjour à tous.

Je souhaiterais votre aide pour une feuille d'heures hebdomadaire.

Je veux pouvoir utiliser les raccourcis clavier "Ctrl + Z" ou Ctrl + Y" ou sur le ruban lorsque je me trompe sur un numéro d'affaire ou tout simplement le nombre d'heures.

Comment activer les fonctions "Annuler ou Rétablir" intégrées à Excel ou à Windows lorsqu'une procédure de module de feuille est activée ?

D'avance je vous remercie.

Nazée

18retablirsaisie.xlsm (28.74 Ko)

Bonjour,

On va dire qu'on ne peut pas Annuler ou Rétablir des Données Avant ou Après l'exécution d'une macro. Sauf à avoir expressément prévu une procédure inverse. Ce qui est tout à fait exceptionnel. Plus rarement quand on utilise un Formulaire on peut annuler une saisie en cours en ne la validant pas et en réinitialisant le Formulaire.
Le même procédé existe sur UserForm. (Sortie avant validation).

A noter qu'on peut toujours sortir d'Excel sans sauvegarder ses modifications ce qui revient à annuler tout ce qu'on à fait avant la dernière sauvegarde.

A+

Bonjour galopin01,

Merci pour ta réponse.

Ah !

Tu veux bien me proposer une procédure inverse car j'ai aucune de comment s'y prendre.

D'avance merci.

Nazée

C'est toujours ma réponse 1 qui s'applique :

On ne peut pas Annuler ou Rétablir des Données Avant ou Après l'exécution d'une macro !

On peut seulement sauvegarder un tas de trucs pour les restituer à la demande. Empêcher de modifier ou suprimer d'autres choses, créer des copie horodatées d'un tas d'autres choses pour les restituer facilement. Mais ça nécessite un investissement très important... En plus des sauvegardes, fait des copies fréquentes de tes fichiers. En cas de crash ça permet de récupérer la plupart des maladresses.

A+

Bonjour,

une technique simple est d'utiliser le presse-papier windows (et non celui d'excel)
Tu supprimes les cellules où tu dois écrire avant de t'y mettre.

image
' Activer Windows Scripting Host
Sub test()
    suppr [A1:B4]
End Sub

Sub suppr(pl As Range)
    Dim WshShell As Object
    Set WshShell = CreateObject("WScript.Shell")
    pl.Select 'plage à sauvegarder pour Ctrl+z
    WshShell.SendKeys ("{DEL}") ' dans le presse-papier
End Sub

et ça sera dispo dans ton Ctrl-z
eric
Edit : modifié sous forme de Sub paramétré.
(pas moyen de préserver la sélection en cours sans que ça fasse merder lors de sa restauration...)

Bonjour galopin01, eriiic,

Merci à vous deux.

J'ai une autre solution qui consiste à enregistrer au fur à mesure chaque donnée saisie.

Cette solution me paraît plus simple à mettre en place. On peut visualiser également les donnés saisies enregistrées.

Encore merci.

Nazée

Rechercher des sujets similaires à "annuler retablir saisie"