Vider le presse papier dans Excel

Résolu/Fermé
Guiiggs Messages postés 27 Date d'inscription vendredi 11 janvier 2013 Statut Membre Dernière intervention 24 janvier 2022 - 16 avril 2019 à 08:56
Guiiggs Messages postés 27 Date d'inscription vendredi 11 janvier 2013 Statut Membre Dernière intervention 24 janvier 2022 - 17 avril 2019 à 10:56
Bonjour,

Pour vider le presse papier dans Excel via les macros, j'utilise le code suivant :
Option Explicit
#If VBA7 Then
Private Declare PtrSafe Function OpenClipboard Lib "user32" (ByVal hWnd As LongPtr) As LongPtr
Private Declare PtrSafe Function EmptyClipboard Lib "user32" () As LongPtr
Private Declare PtrSafe Function CloseClipboard Lib "user32" () As LongPtr
Private Declare PtrSafe Function CountClipboardFormats Lib "user32" () As LongPtr
#Else
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
Private Declare PtrSafe Function CountClipboardFormats Lib "user32" () As Long
#End If

Sub vide_presse_papier()
    
    Application.CutCopyMode = False
    OpenClipboard 0
    EmptyClipboard
    CloseClipboard
    
End Sub



La macro s'exécute correctement mais le presse papier d'Excel ne se vide pas.

Auriez-vous des idées sur pourquoi le presse papier ne se vide pas s'il vous plaît ?

Cordialement,
Guiiggs

4 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
16 avril 2019 à 09:00
0
Guiiggs Messages postés 27 Date d'inscription vendredi 11 janvier 2013 Statut Membre Dernière intervention 24 janvier 2022 1
16 avril 2019 à 14:52
Bonjour,

Merci pour la réponse mais le presse papier ne se vide pas.

Je comprend pas la macro s'exécute sans erreur (test effectué pas à pas) et malgré cela le presse papier se vide pas.

Cordialement,
Guiiggs
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
16 avril 2019 à 15:17
Après essai avec ce code, le presse papier est vide!

Option Explicit
Private Sub CommandButton1_Click()
ViderPressePapier
End Sub
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
Private Sub CommandButton2_Click()
recupererTextePressePapier
End Sub
Sub recupererTextePressePapier()
'nécéssite d'activer la référence "Microsoft Forms 2.0 Object Library."
Dim Resultat As String
 
With New DataObject
    .GetFromClipboard
    Resultat = .GetText(1)
End With
 
MsgBox Resultat
End Sub


@+
0