Famille de feuilles de calcul Microsoft avec des outils pour l’analyse, le graphique et la communication des données.
Effectivement, rien ne semble fonctionner.
Daniel
Ce navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Bonjour à tous,
J'ai cherché sur internet des macros pour vider le presse papier excel / windows, j'en ai trouvé trois : les trois ne fonctionnent pas (ou je n'arrive pas à les faire fonctionner).
J'ai essayé Application.CutCopyMode = False
Qui devrait "juste" vider le presse papier excel, je l'ai mise dans un bouton mais le clic du bouton ne fait pas fonctionner la macro ... (le presse papier est toujours plein) .
J'ai essayé :
Option Explicit
Public Declare Function OuvrirPressePapiers Lib "user32" Alias "OpenClipboard" (ByVal hwnd As Long) As Long
Public Declare Function ViderPressePapiers Lib "user32" Alias "EmptyClipboard" () As Long
Public Declare Function FermerPressePapiers Lib "user32" Alias "CloseClipboard" () As Long
____________________________________________________________________________________________________
Public Function NettoyerPressePapiers()
OuvrirPressePapiers (0&)
ViderPressePapiers
FermerPressePapiers
End Function
____________________________________________________________________________________________________
Sub Bouton11_Cliquer()
Call NettoyerPressePapiers
End Sub
et
Option Explicit
Public Declare PtrSafe Function OuvrirPressePapiers Lib "user32" Alias "OpenClipboard" (ByVal hwnd As Long) As LongPtrPublic Declare PtrSafe Function ViderPressePapiers Lib "user32" Alias "EmptyClipboard" () As LongPtrPublic Declare PtrSafe Function FermerPressePapiers Lib "user32" Alias "CloseClipboard" () As LongPtr
Public Function NettoyerPressePapiers()
____________________________________________________________________________________________________ OuvrirPressePapiers (0&)ViderPressePapiersFermerPressePapiers End Function
____________________________________________________________________________________________________
Sub Bouton11_Cliquer()
Call NettoyerPressePapiers
End Sub
Mais le presse papier est toujours plein.
Comment puis-je faire pour vider mon presse papier excel (car ma macro utilise uniquement excel) en priorité ?
Meri d'avoir lu,
Baptiste
Famille de feuilles de calcul Microsoft avec des outils pour l’analyse, le graphique et la communication des données.
Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.
Effectivement, rien ne semble fonctionner.
Daniel
C'est ce que j'avais mais ça ne vide pas le presse papier excel.
Je ne peux plus coller mais j'ai toujours mes x entrées dans le presse-papiers.
Est-ce possible de vider le presse papier ou pas ?
De plus j'ai essayé ça :
Dim x As New DataObject x.SetText "" x.PutInClipboard Mais dataobject n'est pas reconnu ...
Mais vous quand vous utilisez la macro de votre premier message ça vide le presse papier ou ça vous empêche de coller ?
illustration une fois la macro exécutée :
En 32 bits, ça devrait être :
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 ViderPresse_PapierA()
OpenClipboard 0
EmptyClipboard
CloseClipboard
End Sub
Source : https://excel-downloads.com/threads/vider-presse-papier-excel-2003-a-2010-32-et-64b.181860/
Daniel
Bonjour Daniel merci pour votre réponse,
Je viens de vérifier, j'utilise un excel 32 bits donc ça serait :
Option Explicit
Public Declare Function OuvrirPressePapiers Lib "user32" Alias "OpenClipboard" (ByVal hwnd As Long) As Long
Public Declare Function ViderPressePapiers Lib "user32" Alias "EmptyClipboard" () As Long
Public Declare Function FermerPressePapiers Lib "user32" Alias "CloseClipboard" () As Long
Public Function NettoyerPressePapiers()
OuvrirPressePapiers (0&)
ViderPressePapiers
FermerPressePapiers
End Function
Sub Bouton1_Cliquer()
Call NettoyerPressePapiers
End Sub
Mais ça ne fonctionne pas comme je l'entends. ça bloque le copier coller mais ça ne vide pas le presse papier ...
J'ai activer la références Microsoft Office 16.0 Object library également ...
Est-ce que pour vous ça vide le presse papier ou ça empêche "juste" de coller ?
Bonjour,
Ce code (emprunté sur stackoverflow à Christian) fonctionne pour moi (Excel 64 bits) :
Public Declare PtrSafe Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As LongPtr
Public Declare PtrSafe Function EmptyClipboard Lib "user32" () As LongPtr
Public Declare PtrSafe Function CloseClipboard Lib "user32" () As LongPtr
Public Function ClearClipboard()
OpenClipboard (0&)
EmptyClipboard
CloseClipboard
End Function
Sub test()
Call ClearClipboard
End Sub
Daniel