Vider le presse papier dans Excel
Résolu
Guiiggs
Messages postés
30
Statut
Membre
-
Guiiggs Messages postés 30 Statut Membre -
Guiiggs Messages postés 30 Statut Membre -
Bonjour,
Pour vider le presse papier dans Excel via les macros, j'utilise le code suivant :
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
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
-
-
-
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
@+
-
-
Bonjour,
N'y a-t-il pas une propriété qui les supprime directement sur Excel ? -
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 -
Bonjour,
Merci à Kalissi et cs_Le Pivert pour leur aide.
Cordialement,
Guiiggs