Précédent   Forum du club des développeurs et IT Pro > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 07/10/2003, 10h45   #1
Kelyane
Invité de passage
 
Inscription : août 2003
Messages : 4
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 4
Points : 1
Points : 1
Par défaut [VBA] Vider le presse papier

Bonjour,

J'ai besoin de vider le presse papier, or il me dit quand je veux faire un Clipboard.Clear qu'il ne connait pas. Kkun pourait il me donner l'instruction svp.

Par avance mici
Kelyane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2003, 10h47   #2
THOGAL
Membre régulier
 
Inscription : novembre 2002
Messages : 73
Détails du profil
Informations forums :
Inscription : novembre 2002
Messages : 73
Points : 78
Points : 78
merci de lire les règles du forum ... et donc de modifier ton sujet ....
THOGAL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2003, 11h29   #3
Kelyane
Invité de passage
 
Inscription : août 2003
Messages : 4
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 4
Points : 1
Points : 1
Désolé j'ai été un peu rapide
Kelyane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2003, 11h31   #4
THOGAL
Membre régulier
 
Inscription : novembre 2002
Messages : 73
Détails du profil
Informations forums :
Inscription : novembre 2002
Messages : 73
Points : 78
Points : 78
donnes nous ton code vba s'il te plait ...

THOGAL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2003, 11h45   #5
Kelyane
Invité de passage
 
Inscription : août 2003
Messages : 4
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 4
Points : 1
Points : 1
En faites à partir d'access je génére différents documents word ( je travaille avec deux objet Word), mon prb est que quand à partir d'access je veux fermer mon premier document word, on me dit que le presse papier est remplis, un message me previent alors. Le prb c que mon code access du coup ne peu fermer cette objet word sans clique de l'utilisateur.

En Vb l'instruction est un clipboard.clear, mais sous access 2000 il me dit qu'il ne connait pas (Systéme d'exploitation Win 2000).

J'espére que mon explication, te permettra de mieux comprendre mon prb.
Kelyane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2003, 11h53   #6
THOGAL
Membre régulier
 
Inscription : novembre 2002
Messages : 73
Détails du profil
Informations forums :
Inscription : novembre 2002
Messages : 73
Points : 78
Points : 78
ce lien t'aidera surement :

http://www.carsoftaja.ch/astuces/accesstipsgeneral.htm


mais au fait ... j'espere que tu ne te sers pas du copier coller pour taper du texte dans word ou inserer des images....

car il y a plus simple pour controler un document word depuis access !!!
THOGAL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2003, 11h55   #7
ARO
Membre habitué
 
Inscription : novembre 2002
Messages : 70
Détails du profil
Informations forums :
Inscription : novembre 2002
Messages : 70
Points : 108
Points : 108
Fonctions pour gérer le clipboard :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
 
      Declare Function OpenClipboard Lib "user32" (ByVal hWnd As Long) As Long
      Declare Function CloseClipboard Lib "user32" () As Long
      Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Long) As Long
      Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long
      Declare Function EmptyClipboard Lib "user32" () As Long
 
      Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags&, ByVal dwBytes As Long) As Long
      Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long
      Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long) As Long
      Declare Function GlobalSize Lib "kernel32" (ByVal hMem As Long) As Long
      Declare Function lstrcpy Lib "kernel32" (ByVal lpString1 As Any, ByVal lpString2 As Any) As Long
 
      Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwflags As Long, ByVal dwExtraInfo As Long)
 
      Public Const VK_SNAPSHOT = &H2C
 
   Type RECT_Type
      Left As Long
      Top As Long
      Right As Long
      Bottom As Long
   End Type
 
   Declare Function GetActiveWindow Lib "user32" () As Long
   Declare Function GetDesktopWindow Lib "user32" () As Long
   Declare Sub GetWindowRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT_Type)
 
   Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
   Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
   Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc _
                                       As Long, ByVal nWidth As Long, _
                                       ByVal nHeight As Long) As Long
   Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, _
                                       ByVal hObject As Long) As Long
 
   Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, _
                                       ByVal X As Long, ByVal Y _
                                       As Long, ByVal nWidth As Long, _
                                       ByVal nHeight As Long, _
                                       ByVal hSrcDC As Long, _
                                       ByVal XSrc As Long, _
                                       ByVal YSrc As Long, _
                                       ByVal dwRop As Long) As Long
 
   Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, ByVal hdc As Long) As Long
   Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
 
   Public Const GHND = &H42
   Public Const CF_TEXT = 1
   Public Const MAXSIZE = 4096
 
   Global Const SRCCOPY = &HCC0020
   Global Const CF_BITMAP = 2
 
 
 
'MS KB Artikel Q138910
 
    Function ClipBoard_GetData()
 
         Dim hClipMemory As Long
         Dim lpClipMemory As Long
         Dim MyString As String
         Dim RetVal As Long
 
         If OpenClipboard(0&) = 0 Then
            MsgBox "Cannot open Clipboard. Another app. may have it open"
 
            Exit Function
         End If
 
         ' Obtain the handle to the global memory
         ' block that is referencing the text.
         hClipMemory = GetClipboardData(CF_TEXT)
         If IsNull(hClipMemory) Then
            MsgBox "Could not allocate memory"
            GoTo OutOfHere
         End If
 
         ' Lock Clipboard memory so we can reference
         ' the actual data string.
         lpClipMemory = GlobalLock(hClipMemory)
 
         If Not IsNull(lpClipMemory) Then
 
            MyString = Space$(MAXSIZE)
            RetVal = lstrcpy(MyString, lpClipMemory)
            RetVal = GlobalUnlock(hClipMemory)
 
            ' Peel off the null terminating character.
            MyString = Mid(MyString, 1, InStr(1, MyString, Chr$(0), 0) - 1)
         Else
            MsgBox "Could not lock memory to copy string from."
         End If
 
OutOfHere:
 
         RetVal = CloseClipboard()
         ClipBoard_GetData = MyString
 
      End Function
 
'MS KB Artikel Q138909
 
    Function ClipBoard_SetData(MyString As String)
 
         Dim hGlobalMemory As Long, lpGlobalMemory As Long
 
         Dim hClipMemory As Long, X As Long
 
         ' Allocate moveable global memory.
         '-------------------------------------------
         hGlobalMemory = GlobalAlloc(GHND, Len(MyString) + 1)
 
         ' Lock the block to get a far pointer
         ' to this memory.
         lpGlobalMemory = GlobalLock(hGlobalMemory)
 
         ' Copy the string to this global memory.
         lpGlobalMemory = lstrcpy(lpGlobalMemory, MyString)
 
         ' Unlock the memory.
 
         If GlobalUnlock(hGlobalMemory) <> 0 Then
            MsgBox "Could not unlock memory location. Copy aborted."
            GoTo OutOfHere2
         End If
 
         ' Open the Clipboard to copy data to.
         If OpenClipboard(0&) = 0 Then
            MsgBox "Could not open the Clipboard. Copy aborted."
            Exit Function
         End If
 
         ' Clear the Clipboard.
         X = EmptyClipboard()
 
         ' Copy the data to the Clipboard.
 
         hClipMemory = SetClipboardData(CF_TEXT, hGlobalMemory)
 
OutOfHere2:
 
         If CloseClipboard() = 0 Then
            MsgBox "Could not close Clipboard."
         End If
 
         End Function
 
 
'MS KB Artikel Q148392
 
   Function ScreenDump()
      Dim AccessHwnd As Long, DeskHwnd As Long
      Dim hdc As Long
      Dim hdcMem As Long
      Dim Rect As RECT_Type
      Dim junk As Long
      Dim fwidth As Long, fheight As Long
      Dim hBitmap As Long
 
      DoCmd.Hourglass True
 
      '---------------------------------------------------
      ' Get window handle to Windows and Microsoft Access
      '---------------------------------------------------
      DeskHwnd = GetDesktopWindow()
      AccessHwnd = GetActiveWindow()
 
      '---------------------------------------------------
      ' Get screen coordinates of Microsoft Access
      '---------------------------------------------------
      Call GetWindowRect(AccessHwnd, Rect)
      fwidth = Rect.Right - Rect.Left
      fheight = Rect.Bottom - Rect.Top
 
      '---------------------------------------------------
      ' Get the device context of Desktop and allocate memory
      '---------------------------------------------------
      hdc = GetDC(DeskHwnd)
      hdcMem = CreateCompatibleDC(hdc)
      hBitmap = CreateCompatibleBitmap(hdc, fwidth, fheight)
 
      If hBitmap <> 0 Then
         junk = SelectObject(hdcMem, hBitmap)
 
         '---------------------------------------------
         ' Copy the Desktop bitmap to memory location
         ' based on Microsoft Access coordinates.
         '---------------------------------------------
         junk = BitBlt(hdcMem, 0, 0, fwidth, fheight, hdc, Rect.Left, _
                       Rect.Top, SRCCOPY)
 
         '---------------------------------------------
         ' Set up the Clipboard and copy bitmap
         '---------------------------------------------
         junk = OpenClipboard(DeskHwnd)
         junk = EmptyClipboard()
         junk = SetClipboardData(CF_BITMAP, hBitmap)
         junk = CloseClipboard()
      End If
 
      '---------------------------------------------
      ' Clean up handles
      '---------------------------------------------
      junk = DeleteDC(hdcMem)
      junk = ReleaseDC(DeskHwnd, hdc)
 
      DoCmd.Hourglass False
 
   End Function
 
Function PrtScn(Alles As Boolean)
 
' Alles = True Gesamter Bildschirm
' Alles = False - Aktives Fenster
 
'Tip aus www.basicworld.com
  ' 32 Bit
'Die Prozedur keybd_event schafft lässig, was SendKeys nicht kann - beachten Sie
'bitte, daß das SDK die Verwendung für diese Zwecke fälschlicherweise genau
'vertauscht dokumentiert: Übergeben Sie ihr im Parameter bVk den virtuellen
'Tastencode VB_SNAPSHOT für die "PrintScreen"-Taste, so erhalten Sie eine Kopie
'des aktiven Fensters in der Zwischenablage:
 
If Not Alles Then
    keybd_event VK_SNAPSHOT, 0, 0, 0
'Wünschen Sie, den gesamten Desktop zu kopieren, so setzen Sie den Parameter
'bScan einfach auf 1:
Else
    keybd_event VK_SNAPSHOT, 1, 0, 0
End If
 
End Function
 
'***** Code start  ********
'code courtesy of
'Terry Kreft
'
Function ClipBoard_Clear()
  Call OpenClipboard(0&)
  Call EmptyClipboard
  Call CloseClipboard
End Function
ARO est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2003, 12h05   #8
Kelyane
Invité de passage
 
Inscription : août 2003
Messages : 4
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 4
Points : 1
Points : 1
Merci pour la réponse ça fonctionne trés trés bien.

En faites je génére un premier document word par l'envois des données sur des signets, puis je fais un copier coller sur le deuxiéme document qui aurat tout les documents au sein du même document.
Kelyane est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 17h12.


 
 
 
 
Partenaires

Hébergement Web