Microsoft 365 Vider presse Papier VBA

Nounours

XLDnaute Nouveau
Bonjour , je travaille sur Outlook 365 et je n'arrive pas à trouver le moyen di vider le presse papier .
J'ai un fichier qui fait de nombreux copier coller du coup le fichier excel rame .

J'ai déjà essayé sans succès les codes suivants :

Sub NettoyerPressePapiersExcel()
Application.CutCopyMode = False
End Sub

---------------------------

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

---------------------------

Option Explicit

Public Declare PtrSafe Function OuvrirPressePapiers Lib "user32" Alias "OpenClipboard" (ByVal hwnd As Long) As LongPtr
Public Declare PtrSafe Function ViderPressePapiers Lib "user32" Alias "EmptyClipboard" () As LongPtr
Public Declare PtrSafe Function FermerPressePapiers Lib "user32" Alias "CloseClipboard" () As LongPtr

Public Function NettoyerPressePapiers()
OuvrirPressePapiers (0&)
ViderPressePapiers
FermerPressePapiers
End Function
 

crocrocro

XLDnaute Impliqué
Bonjour le fil,
voir la fonction ClearPressePapier dans le code ci-dessous
VB:
Public Function ClearPressePapier()
    With CreateObject("htmlfile").parentWindow.clipboardData.clearData("Text"): End With
End Function
Public Property Let PressePapier(valeur)
    With CreateObject("htmlfile").parentWindow.clipboardData.SetData("Text", valeur): End With
End Property
Public Property Get PressePapier()
    PressePapier = CreateObject("htmlfile").parentWindow.clipboardData.GetData("TEXT")
End Property

Sub MettreDansPressePapier()
Dim Cumul As Long
Dim TextePressePapier As String
    Cumul = Application.Sum(Range("A2:A5"))
    TextePressePapier = "Le cumul ""A2:A5"" = " & CStr(Cumul)
    MsgBox "Le texte " & TextePressePapier & " est dans le Presse-papier." & vbCrLf & "Il peut être copié n'importe où.", vbInformation
    ClearPressePapier
    PressePapier = TextePressePapier  'se retrouve dans le pressePapier
End Sub
Sub InfosDansPressePapier()
Dim DerLigne As Integer
Dim TextePressePapier As String
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Sheets.Add After:=ActiveSheet
    For i = 1 To 10
        ActiveSheet.Cells(i, 1) = "Texte ligne " & i
    Next i
    DerLigne = ActiveSheet.Cells.Find("*", , , , xlByRows, xlPrevious).Row
    For i = 1 To DerLigne
        TextePressePapier = TextePressePapier & Cells(i, 1) & vbLf
    Next i
    ClearPressePapier
    PressePapier = TextePressePapier  'se retrouve dans le pressePapier
    ActiveSheet.Delete
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    MsgBox "Les informations système sont dans le Presse-papier.", vbInformation

End Sub
Sub InfosDansPressePapierbis()
Dim DerLigne As Integer
Dim TextePressePapier As String
Dim objCP As Object
Dim Message As String
    TextePressePapier = "Mon texte à copier dans le presse-papier."
    Set objCP = CreateObject("HtmlFile")
    objCP.parentWindow.clipboardData.SetData "text", TextePressePapier
    Message = "Le texte " & vbLf _
            & """" & objCP.parentWindow.clipboardData.GetData("text") & """" & vbLf _
            & "     est dans le Presse-papier."
    MsgBox Message, vbInformation
    Set objCP = Nothing
End Sub
 

Discussions similaires

  • Résolu(e)
Microsoft 365 32 ou 64 bits
Réponses
46
Affichages
2 K

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
315 087
Messages
2 116 083
Membres
112 655
dernier inscrit
fannycordi