Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

10 réponses
Avatar
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

10 réponses

Avatar
Youky \(BJ\)
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


Avatar
Pounet95
"Youky (BJ)" a écrit dans le message de
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






Avatar
Pounet95
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)" a écrit dans le message de
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






Avatar
michdenis
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
Avatar
Pounet95
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" a écrit dans le message de
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



Avatar
Modeste
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/
Avatar
Pounet95
"Modeste" a écrit dans le message de
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/
Avatar
Pounet95
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" a écrit dans le message de
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/
Avatar
Modeste
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
Avatar
Pounet95
.... et bien, vu comme ça, je crois que je vais tenter de comprendre
l'anglais !

"Modeste" a écrit dans le message de
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