Menu

Vider le presse papier dans Excel [Résolu]

Messages postés
20
Date d'inscription
vendredi 11 janvier 2013
Statut
Membre
Dernière intervention
17 avril 2019
- - Dernière réponse : Guiiggs
Messages postés
20
Date d'inscription
vendredi 11 janvier 2013
Statut
Membre
Dernière intervention
17 avril 2019
- 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
Afficher la suite 

Votre réponse

4 réponses

Messages postés
5990
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
19 avril 2019
421
Guiiggs
Messages postés
20
Date d'inscription
vendredi 11 janvier 2013
Statut
Membre
Dernière intervention
17 avril 2019
-
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
cs_Le Pivert
Messages postés
5990
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
19 avril 2019
421 -
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


@+
Commenter la réponse de cs_Le Pivert
Messages postés
4
Date d'inscription
mardi 16 avril 2019
Statut
Membre
Dernière intervention
16 avril 2019
0
Merci
Bonjour,
N'y a-t-il pas une propriété qui les supprime directement sur Excel ?
Commenter la réponse de BERNARD476
Messages postés
210
Date d'inscription
jeudi 2 mai 2013
Statut
Membre
Dernière intervention
16 avril 2019
20
0
Merci
Bonjour,

Sous Excel 2013 W2010 ta macro fonctionne bien ...

As-tu essayer :

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


K
Commenter la réponse de Kalissi
Messages postés
20
Date d'inscription
vendredi 11 janvier 2013
Statut
Membre
Dernière intervention
17 avril 2019
0
Merci
Bonjour,

Merci à Kalissi et cs_Le Pivert pour leur aide.

Cordialement,
Guiiggs
Commenter la réponse de Guiiggs