IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

[VBA] Vider le presse papier [À faire]


Sujet :

VBA Access

  1. #1
    Invité de passage
    Inscrit en
    Août 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 4
    Points : 2
    Points
    2
    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

  2. #2
    Membre régulier

    Inscrit en
    Novembre 2002
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 73
    Points : 86
    Points
    86
    Par défaut
    merci de lire les règles du forum ... et donc de modifier ton sujet ....

  3. #3
    Invité de passage
    Inscrit en
    Août 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Désolé j'ai été un peu rapide

  4. #4
    Membre régulier

    Inscrit en
    Novembre 2002
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 73
    Points : 86
    Points
    86
    Par défaut
    donnes nous ton code vba s'il te plait ...


  5. #5
    Invité de passage
    Inscrit en
    Août 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    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.

  6. #6
    Membre régulier

    Inscrit en
    Novembre 2002
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 73
    Points : 86
    Points
    86
    Par défaut
    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 !!!

  7. #7
    ARO
    ARO est déconnecté
    Membre habitué

    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 74
    Points : 128
    Points
    128
    Par défaut
    Fonctions pour gérer le clipboard :

    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
    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

  8. #8
    Invité de passage
    Inscrit en
    Août 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Vider le presse papier en VBA
    Par knecmotet dans le forum Général VBA
    Réponses: 17
    Dernier message: 05/03/2022, 20h50
  2. vider le presse papier avant utilisation en vba
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/04/2009, 07h43
  3. VBA - Vider le presse-papier
    Par ftcalvados dans le forum Général VBA
    Réponses: 10
    Dernier message: 21/12/2006, 11h38
  4. [VBA-E] Vider le presse-papier
    Par tinej dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/12/2002, 09h33
  5. [Système] Vider le Presse Papier
    Par babe dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/09/2002, 17h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo