Effacer tout le presse-papier

Bonsoir à toutes et tous,

Le sujet à déjà été à de nombreuse reprises étudié mais malheureusement je ne trouve aucune solution fonctionnelle.

Tout est dit dans le titre, le fichier joint copie/colle plus ou moins beaucoup d'éléments (variable à chaque fois). Régulièrement j'ai le message d'erreur du presse-papier qui s'affiche et dans quelques cas, le code ne parvient pas à terme.

J'aimerais donc intégrer un module qui permet de vider complètement le presse-papier (comme si j'appuyais sur le bouton "Effacer tout" de la photo en copie).

Merci d'avance ;)

capture d ecran 41

Bonjour,

le code:

Sub ViderPressePapier()
    'Nécéssite d'activer la référence "Microsoft Forms 2.0 Object Library."
    Dim Cible As DataObject
    Set Cible = New DataObject
    Cible.SetText ""
    Cible.PutInClipboard
    Set Cible = Nothing
End Sub

Cdlt

image

Bonjour Arturo83,

J'ai exécuté votre solution mais cela ne semble pas fonctionner.

Les éléments dans le presse papier restent présent, le message d'erreur apparait toujours et le code ne parvient pas à terme.

Au plaisir de vous lire.

Bonjour SOTIN

peur-être avec l'API EmptyClipboard : fonction à insérer dans un module EffacerPressePapier et à appeler via les macros

#if VBA7 Then
Declare PtrSafe Function EmptyClipboard Lib "user32" () As LongPtr
#Else
Declare Function EmptyClipboard Lib "user32" () As Long
#End If
Sub EffacerPressePapier()
Call EmptyClipboard
End Sub

Bonjour à tous,

Private Declare PtrSafe Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Private Declare PtrSafe Function EmptyClipboard Lib "user32" () As Long
Private Declare PtrSafe Function CloseClipboard Lib "user32" () As Long

Sub VidePP()
    Application.CutCopyMode = False
    ' ou/et
    OpenClipboard 0
    EmptyClipboard
    CloseClipboard
End Sub

eric

Rechercher des sujets similaires à "effacer tout presse papier"