[VBA] Macro ANNULER une suppression (par macro) de cellules dans une feuille
Bonjour à tous,
Je vous sollicite car j'ai besoin d'une grande aide. En effet, après quelques heures de recherche sur Internet, je n'ai pas encore trouvé de réponses à ma question.
Je souhaite écrire une macro qui annule la suppression de lignes, de colonnes ou de toutes les cellules dans une feuille de calcul. (c'est à dire que la feuille de calcul revienne à l'état d'avant la suppression, avec les mêmes valeurs et la même mise en forme). Excel le fait facilement, donc cela doit être possible à faire. Le problème est que je n'ai pas accès au code Excel...
J'ai donc bien cerné le fonctionnement de l'application Undo (Application.Undo). Mon idée était de déclarer l'ensemble de mes cellules dans une variable, puis, après suppression, de coller les données (correspondant aux cellules avant suppression) de cette variable dans ma feuille de calcul.
Comme d'habitude, j'utilise une variable "Range" :
Mais la variable "RangeSave" s'adapte à la sélection, c'est à dire que quand, par exemple, je supprime 2 lignes, ces 2 lignes ne sont plus présentes dans "RangeSave". Mon objectif est donc de fixer la plage de données dans une variable, celle-ci restant TOUJOURS la même quelque soit les opérations effectuées (suppression de lignes...).
J'avais aussi pensé à boucler sur l'ensemble des cellules, mais cela est bien sûr ultra long, car il faut gérer plus de 15 millions de cellules !!!
Encore une fois, Excel le fait très simplement et rapidement, donc je pense que cela est largement faisable.
Si vous avez des idées ou des solutions, n'hésitez pas à les faire partager, pour faire avancer les autres ainsi que moi-même.
Merci d'avance et bonne journée.
Bonjour à tous,
Je vous sollicite car j'ai besoin d'une grande aide. En effet, après quelques heures de recherche sur Internet, je n'ai pas encore trouvé de réponses à ma question.
Je souhaite écrire une macro qui annule la suppression de lignes, de colonnes ou de toutes les cellules dans une feuille de calcul. (c'est à dire que la feuille de calcul revienne à l'état d'avant la suppression, avec les mêmes valeurs et la même mise en forme). Excel le fait facilement, donc cela doit être possible à faire. Le problème est que je n'ai pas accès au code Excel...
J'ai donc bien cerné le fonctionnement de l'application Undo (Application.Undo). Mon idée était de déclarer l'ensemble de mes cellules dans une variable, puis, après suppression, de coller les données (correspondant aux cellules avant suppression) de cette variable dans ma feuille de calcul.
Comme d'habitude, j'utilise une variable "Range" :
Code:
Sub UndoSuppression()
Dim RangeSave as Range
Set RangeSave = Cells
End Sub
Mais la variable "RangeSave" s'adapte à la sélection, c'est à dire que quand, par exemple, je supprime 2 lignes, ces 2 lignes ne sont plus présentes dans "RangeSave". Mon objectif est donc de fixer la plage de données dans une variable, celle-ci restant TOUJOURS la même quelque soit les opérations effectuées (suppression de lignes...).
J'avais aussi pensé à boucler sur l'ensemble des cellules, mais cela est bien sûr ultra long, car il faut gérer plus de 15 millions de cellules !!!
Encore une fois, Excel le fait très simplement et rapidement, donc je pense que cela est largement faisable.
Si vous avez des idées ou des solutions, n'hésitez pas à les faire partager, pour faire avancer les autres ainsi que moi-même.
Merci d'avance et bonne journée.
Dernière édition: