VBA : comment récupérer la dernière info dans "Undo"

Le
Pounet95
Bonjour à toutes et tous,
XL2000 et Windows2000

Certaines des actions effectuées dans une feuille de calcul sont stockées
dans une liste accessible dans le bouton Annuler de la barre d'outils
standard.
Ces actions sont "empilées" et elles peuvent donc être annulées dans l'ordre
inverse où elles ont été effectuées.
Mon désir serait de pouvoir récupérer la dernière info empilée surtout s'il
s'agit d'une suppression de ligne(s) ou cellule.
Avez-vous déjà eu l'occasion de traiter ce problème ? Et si oui, pouvez-vous
me dire comment faire ?
.. et même si vous n'avez jamais fait que que vous avez quelque
idée, je suis preneur, bien sûr.

Pounet95
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Youky \(BJ\)
Le #18568111
Salut Pounet,
pour une 1ère approche

Sub test()
Application.Undo
End Sub
Par contre pour connaitre la dernière action ...là je sèche
--
Youky (BJ)

"Pounet95" a écrit dans le message de news:

Bonjour à toutes et tous,
XL2000 et Windows2000

Certaines des actions effectuées dans une feuille de calcul sont stockées
dans une liste accessible dans le bouton Annuler de la barre d'outils
standard.
Ces actions sont "empilées" et elles peuvent donc être annulées dans
l'ordre inverse où elles ont été effectuées.
Mon désir serait de pouvoir récupérer la dernière info empilée surtout
s'il s'agit d'une suppression de ligne(s) ou cellule.
Avez-vous déjà eu l'occasion de traiter ce problème ? Et si oui,
pouvez-vous me dire comment faire ?
........... et même si vous n'avez jamais fait que que vous avez quelque
idée, je suis preneur, bien sûr.

Pounet95


Pounet95
Le #18568061
"Youky (BJ)" news:%
Salut Pounet,
pour une 1ère approche

Sub test()
Application.Undo
End Sub
Par contre pour connaitre la dernière action ...là je sèche
--
Youky (BJ)

"Pounet95" a écrit dans le message de news:

Bonjour à toutes et tous,
XL2000 et Windows2000

Certaines des actions effectuées dans une feuille de calcul sont stockées
dans une liste accessible dans le bouton Annuler de la barre d'outils
standard.
Ces actions sont "empilées" et elles peuvent donc être annulées dans
l'ordre inverse où elles ont été effectuées.
Mon désir serait de pouvoir récupérer la dernière info empilée surtout
s'il s'agit d'une suppression de ligne(s) ou cellule.
Avez-vous déjà eu l'occasion de traiter ce problème ? Et si oui,
pouvez-vous me dire comment faire ?
........... et même si vous n'avez jamais fait que que vous avez quelque
idée, je suis preneur, bien sûr.

Pounet95






Pounet95
Le #18568051
Salut Youki,

Pas évident en effet ! J'ai cherché dans les Redo, Undo, CanRedo, Sendkeys,
OnAction mais j'ai pas trouvé grand chose.
Je continue de fouiller, mais pour l'heure c'est plutôt très infructueux
Merci

Pounet95

"Youky (BJ)" news:%
Salut Pounet,
pour une 1ère approche

Sub test()
Application.Undo
End Sub
Par contre pour connaitre la dernière action ...là je sèche
--
Youky (BJ)

"Pounet95" a écrit dans le message de news:

Bonjour à toutes et tous,
XL2000 et Windows2000

Certaines des actions effectuées dans une feuille de calcul sont stockées
dans une liste accessible dans le bouton Annuler de la barre d'outils
standard.
Ces actions sont "empilées" et elles peuvent donc être annulées dans
l'ordre inverse où elles ont été effectuées.
Mon désir serait de pouvoir récupérer la dernière info empilée surtout
s'il s'agit d'une suppression de ligne(s) ou cellule.
Avez-vous déjà eu l'occasion de traiter ce problème ? Et si oui,
pouvez-vous me dire comment faire ?
........... et même si vous n'avez jamais fait que que vous avez quelque
idée, je suis preneur, bien sûr.

Pounet95






michdenis
Le #18568271
Pour ajouter ce type de contrôle "CommandBarControl"
à une barre d'outils, on utilise la commande suivante :
.Add Type:=msoControlSplitDropdown, ID:9

C'est un type de contrôle géré par l'application. Il serait
surprenant que l'on puisse avoir accès à la liste qu'il contient...
qui sait ?

Je joins un fichier qui te donne un petit exemple comment tu
peux intercepter les commandes du menu d'excel.
http://cjoint.com/?cflTlu1fHH
(pour les versions d'avant 2007)



"Pounet95" a écrit dans le message de groupe de discussion :

Bonjour à toutes et tous,
XL2000 et Windows2000

Certaines des actions effectuées dans une feuille de calcul sont stockées
dans une liste accessible dans le bouton Annuler de la barre d'outils
standard.
Ces actions sont "empilées" et elles peuvent donc être annulées dans l'ordre
inverse où elles ont été effectuées.
Mon désir serait de pouvoir récupérer la dernière info empilée surtout s'il
s'agit d'une suppression de ligne(s) ou cellule.
Avez-vous déjà eu l'occasion de traiter ce problème ? Et si oui, pouvez-vous
me dire comment faire ?
........... et même si vous n'avez jamais fait que que vous avez quelque
idée, je suis preneur, bien sûr.

Pounet95
Pounet95
Le #18568441
Bonjour,

Encore une fois, je ne sais que dire, sinon, platement Merci.
Effectivement, sous XL2007 ça ne fonctionne pas pour tous les menus, mais
pour certains, si.
Mais ça c'est pas grave car pour mon besoin, c'est sous XL2000.
Je vais déjà me servir de cela pour rétblir avec le Undo la suppression
effectuée.

Pounet95

"michdenis" news:
Pour ajouter ce type de contrôle "CommandBarControl"
à une barre d'outils, on utilise la commande suivante :
.Add Type:=msoControlSplitDropdown, ID:9

C'est un type de contrôle géré par l'application. Il serait
surprenant que l'on puisse avoir accès à la liste qu'il contient...
qui sait ?

Je joins un fichier qui te donne un petit exemple comment tu
peux intercepter les commandes du menu d'excel.
http://cjoint.com/?cflTlu1fHH
(pour les versions d'avant 2007)



"Pounet95" a écrit dans le message de groupe de
discussion :

Bonjour à toutes et tous,
XL2000 et Windows2000

Certaines des actions effectuées dans une feuille de calcul sont stockées
dans une liste accessible dans le bouton Annuler de la barre d'outils
standard.
Ces actions sont "empilées" et elles peuvent donc être annulées dans
l'ordre
inverse où elles ont été effectuées.
Mon désir serait de pouvoir récupérer la dernière info empilée surtout
s'il
s'agit d'une suppression de ligne(s) ou cellule.
Avez-vous déjà eu l'occasion de traiter ce problème ? Et si oui,
pouvez-vous
me dire comment faire ?
........... et même si vous n'avez jamais fait que que vous avez quelque
idée, je suis preneur, bien sûr.

Pounet95



Modeste
Le #18568711
Bonsour® Pounet95

Certaines des actions effectuées dans une feuille de calcul sont
stockées dans une liste accessible dans le bouton Annuler de la barre
d'outils standard.
Ces actions sont "empilées" et elles peuvent donc être annulées dans
l'ordre inverse où elles ont été effectuées.
Mon désir serait de pouvoir récupérer la dernière info empilée
surtout s'il s'agit d'une suppression de ligne(s) ou cellule.
Avez-vous déjà eu l'occasion de traiter ce problème ? Et si oui,
pouvez-vous me dire comment faire ?
........... et même si vous n'avez jamais fait que que vous avez
quelque idée, je suis preneur, bien sûr.



La mémorisation undo/redo est de type LIFO "Last IN, First OUT"
et concerne le differentiel de contenu entre deux actions "manuelles"
ce qui explique que seule la derniere action soit est accessible...

pour accéder à l'une quelconque des "UnDo" de la pile constituée,
il faut "UNDOer" ? chaque élément de cette pile en commençant par le plus récent.
!!!!!!!!!!!!!!!!!!!================!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ET ....pour peu qu'il n'y ai pas eu de commande VBA (macro) entretemps,
auquel cas la pile UnDo/ReDo est détruite !!!!
!!!!!!!!!!!!!!!!!!!================!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

en principe il n'y a pas de UnDo/ReDo en VBA ??? ;o)))
http://spreadsheetpage.com/index.php/site/tip/undoing_a_vba_subroutine/
Pounet95
Le #18569131
"Modeste" news:%
Bonsour® Pounet95

Certaines des actions effectuées dans une feuille de calcul sont
stockées dans une liste accessible dans le bouton Annuler de la barre
d'outils standard.
Ces actions sont "empilées" et elles peuvent donc être annulées dans
l'ordre inverse où elles ont été effectuées.
Mon désir serait de pouvoir récupérer la dernière info empilée
surtout s'il s'agit d'une suppression de ligne(s) ou cellule.
Avez-vous déjà eu l'occasion de traiter ce problème ? Et si oui,
pouvez-vous me dire comment faire ?
........... et même si vous n'avez jamais fait que que vous avez
quelque idée, je suis preneur, bien sûr.



La mémorisation undo/redo est de type LIFO "Last IN, First OUT"
et concerne le differentiel de contenu entre deux actions "manuelles"
ce qui explique que seule la derniere action soit est accessible...

pour accéder à l'une quelconque des "UnDo" de la pile constituée,
il faut "UNDOer" ? chaque élément de cette pile en commençant par le plus
récent.
!!!!!!!!!!!!!!!!!!!================!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ET ....pour peu qu'il n'y ai pas eu de commande VBA (macro) entretemps,
auquel cas la pile UnDo/ReDo est détruite !!!!
!!!!!!!!!!!!!!!!!!!================!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

en principe il n'y a pas de UnDo/ReDo en VBA ??? ;o)))
http://spreadsheetpage.com/index.php/site/tip/undoing_a_vba_subroutine/
Pounet95
Le #18569121
Salut Modeste,

Je vais "sauter" sur ce lien et voir tout ce que l'on peut en tirer. Merci
pour l'info
PS : de mémoire il y a aussi les piles FILO (FirstIn,LastOut) et NINO (très
rares car NeverIn, NeverOut ;o))))) )

Pounet95

"Modeste" news:%
Bonsour® Pounet95

Certaines des actions effectuées dans une feuille de calcul sont
stockées dans une liste accessible dans le bouton Annuler de la barre
d'outils standard.
Ces actions sont "empilées" et elles peuvent donc être annulées dans
l'ordre inverse où elles ont été effectuées.
Mon désir serait de pouvoir récupérer la dernière info empilée
surtout s'il s'agit d'une suppression de ligne(s) ou cellule.
Avez-vous déjà eu l'occasion de traiter ce problème ? Et si oui,
pouvez-vous me dire comment faire ?
........... et même si vous n'avez jamais fait que que vous avez
quelque idée, je suis preneur, bien sûr.



La mémorisation undo/redo est de type LIFO "Last IN, First OUT"
et concerne le differentiel de contenu entre deux actions "manuelles"
ce qui explique que seule la derniere action soit est accessible...

pour accéder à l'une quelconque des "UnDo" de la pile constituée,
il faut "UNDOer" ? chaque élément de cette pile en commençant par le plus
récent.
!!!!!!!!!!!!!!!!!!!================!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ET ....pour peu qu'il n'y ai pas eu de commande VBA (macro) entretemps,
auquel cas la pile UnDo/ReDo est détruite !!!!
!!!!!!!!!!!!!!!!!!!================!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

en principe il n'y a pas de UnDo/ReDo en VBA ??? ;o)))
http://spreadsheetpage.com/index.php/site/tip/undoing_a_vba_subroutine/
Modeste
Le #18569271
Bonsour® Pounet95
PS : de mémoire il y a aussi les piles FILO (FirstIn,LastOut) et NINO
(très rares car NeverIn, NeverOut ;o))))) )



selon PEBCAK, le plus probable reste tout de même :
MIMO
Merde In, Merde Out
;o))))
http://en.wiktionary.org/wiki/PEBCAK
Pounet95
Le #18570671
.... et bien, vu comme ça, je crois que je vais tenter de comprendre
l'anglais !

"Modeste" news:
Bonsour® Pounet95
PS : de mémoire il y a aussi les piles FILO (FirstIn,LastOut) et NINO
(très rares car NeverIn, NeverOut ;o))))) )



selon PEBCAK, le plus probable reste tout de même :
MIMO
Merde In, Merde Out
;o))))
http://en.wiktionary.org/wiki/PEBCAK
Publicité
Poster une réponse
Anonyme