Revenir en arrière après exécution macro

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

niiiiiiiiiico

XLDnaute Occasionnel
Bonjour,

J'ai fais un outil pour réaliser un Document Unique et dans celui-ci 2 macros :

L'une pour insérer une ligne (+ mise en page et copie de formule) au dessus de la cellule sélectionnée
L'autre pour suprimmer la ligne de la cellule sélectionnée.

Toutefois, je m'aperçois que le risque de suprimmer la mauvaise ligne n'est pas négligeable et il est impossible de revenir en arrière via Edition > Annuler (ou ctrl + Z)

Existe-il des macros spéciales pour annuler l'action de la dernière macro exécutée ?

Merci !
 
Re : Revenir en arrière après exécution macro

Bonjour

Non je ne pense pas mais...

(Je fait cela avec des textboxs cachés dans mon userform qui supp des cells)

Si ta macro est assez simple tu peut avant de supp au début du code lui copier la ligne à supp dans une feuil cachée et avec un bouton undo que tue te fait tu lui fait le code inverse et il retourne chercher ta ligne cachée.

A+

En attendant mieux

Temjeh
 
Re : Revenir en arrière après exécution macro

Bonjour Niiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiico, Temjeh, bonjour le forum,

Même raisonnement que Temjeh Niiiiiiiiiiiiiiiiiiiiiiiiiiiiiiico. Tu pourrais aussi, avant la suppression, ajouter un Msgbox du style "Voulez-vous vraiment supprimer la ligne....." Oui/Non.

p.s. vend une touche i de clavier informatique en parfait état de marche.
 
Re : Revenir en arrière après exécution macro

Bonjour à tous les 2 et merci pour vos réponses !

Je n'ai pas le fichier en question chez moi et n'ayant pas de connaissances en vba, voici une macro lambda d'un de mes fichiers :


Sub màjagents_formations()
'
' màjagents_formations Macro
' Macro enregistrée le 15/02/2007 par NC
'

'
ActiveSheet.Unprotect
Range("b19:r339").Select
Selection.Sort Key1:=Range("b20"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
Range("b19").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowSorting:=True
End Sub


Le code de la boîte de dialogue où la personne mettrait oui pour que cette macro s'exécute et non pour qu'elle ne s'exécute pas s'insèrerait comment dans le code ci-dessus ?

Pour la copie dans une feuille et la création d'un bouton undo, je vais essayer via l'enregistrement de macro, en espérant que ça n'alourdisse pas le fichier qui est déjà conséquent !

Une nouvelle fois merci !
 
Re : Revenir en arrière après exécution macro

Bonjour le fil, bonjour le forum,

Je n'ai pas compris cette macro car aucune ligne n'y est supprimée. C'est juste une tri. Quoi qu'il en soit, une réponse à ta première question :

un message
si "oui", ta macro...

Code:
Sub màjagents_formations()
 
Dim a As Byte 'déclare la variable a
 
a = MsgBox("Désirez-vous vraiment effacer la lgne ?", vbYesNo, "Attention !") 'Texte à adapter
 
If a = vbYes Then 'condition : si la réponse est "Oui"
    ActiveSheet.Unprotect
    Range("b19:r339").Select
    Selection.Sort Key1:=Range("b20"), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortTextAsNumbers
    Range("b19").Select
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
    , AllowSorting:=True
End If 'fin de la condition
 
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
586
Retour