Bonjour,
Une petite question : est-il possible de vider le contenu du presse papier de Word par le code VB?
J'ai des doutes car dans l'aide, c'est élément n'a aucune correspondance en VB.
Merci,
Bonjour,
Une petite question : est-il possible de vider le contenu du presse papier de Word par le code VB?
J'ai des doutes car dans l'aide, c'est élément n'a aucune correspondance en VB.
Merci,
Salut,
Tu peux essayer :
ClipBoard.Clear
![]()
A+
HCath
Le presse papiers est commun à l'ensemble des applications et permet de coller du texte, des images, des objets entre différentes applications. A la base le mécanisme défini par MS se nomme OLE(Object Linking and Embedding).
Tu peux en effet supprimer le contenu du presse papier via l'objet ClipBoard avec l'instruction Clipboard.Clearmais ça HCath te l'a déjà dit, elle est trés forte en VB!
En VBA l'objet ClipBoard (comme beaucoup d'autres ...) n'est pas disponible. (d'où l'utilitée de préciser DES LE DEPART si tu programmes en VB ou en VBA et avec quel logiciel Office si c'est en VBA ....)
Recherche du coté des API ....
Exemple tiré tout droit du très pratique programme API-Guide plusieurs fois cité dans le forum (cf allapi.net)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 Private Const CF_TEXT = 1 Private Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Long) As Long Private Declare Function CloseClipboard Lib "user32" () As Long Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As Long) As Long Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Long, ByVal ByteLen As Long) Private Sub Form_Load() 'KPD-Team 2001 'URL: http://www.allapi.net/ 'E-Mail: KPDTeam@Allapi.net Dim hStrPtr As Long, lLength As Long, sBuffer As String OpenClipboard Me.hwnd hStrPtr = GetClipboardData(CF_TEXT) If hStrPtr <> 0 Then lLength = lstrlen(hStrPtr) If lLength > 0 Then sBuffer = Space$(lLength) CopyMemory ByVal sBuffer, ByVal hStrPtr, lLength MsgBox sBuffer, vbInformation End If End If CloseClipboard End Sub
Pour effacer le clipboard :
Private Declare Function EmptyClipboard Lib "user32" () As Long
Call EmptyClipboard
Partager