Vider le presse papier
Quand on copie des données dans excel pour les coller ailleurs, excel met un pointillé autour des données copiées. Appuyer sur la touche echap supprime ce pointillé. L'équivalent en VBA est obtenu par l'instruction
cutcopymode=false.
C'est une bonne idée de l'insérer dans des macros ou de grandes quantités de données sont placées dans le presse papier. Ceci arrête le mode copie mais ne vide pa à proprement parler le presse papier.
Pour s'en convaincre, copier le contenu d'une cellule dans la barre de formule ou en passant en mode saisie de la cellule => coller ailleurs => exécuter :
sub test()
Application.CutCopyMode = False
Application.CommandBars("Clipboard").Visible = True
end subLe presse-papier n'est pas vide ! En exécutant le même test après un copier/coller d'un objet (objets dessiné quelconque par ex.), on obtient le même résultat : Presse-papier non vidé !
Pour réellement vider le presse papier, plusieurs solutions possibles :
En utlisant une macro XL4 en gérant l'erreur possible si le PP est vide (toujours valable dans excel 2007)
sub vide_PP()
On Error Resume Next
Application.CommandBars("Clipboard").Controls(4).Execute
end subOn peut aussi placer une donnée vide dans le presse papier de windows. Il faut pour cela que la référence à Microsoft Forms 2.0 Library soit cochée dans VBA.
Sub Clear_Clipboard() Dim truc As DataObject Set truc = New DataObject truc.SetText "" truc.PutInClipboard Set truc = Nothing End sub
Ou bien encore pour vider le presse papier d'office :
Déclaration des API dans le haut d'un module standard :
Private Declare Function OpenClipboard Lib "user32" _ (ByVal hwnd As Long) As Long Private Declare Function EmptyClipboard Lib "user32" () As Long Private Declare Function CloseClipboard Lib "user32" () As Long Sub Vider_Presse_Papier() OpenClipboard 0 EmptyClipboard CloseClipboard End Sub
Auteurs : Flo Cabon, Alain Vallon
Mots clefs associés à cette page : vider, vide, presse, papier
- Vous devez vous identifier ou créer un compte pour écrire des commentaires
