Bonjour à tous,
Pardonnez moi ma méconnaissance profonde du VBA.
Je souhaiterais coller dans le presse papier de Windows la valeur d'une variable string
Comment faire ?
Merci par avance pour votre aide
Pierre
Bonjour à tous,
Pardonnez moi ma méconnaissance profonde du VBA.
Je souhaiterais coller dans le presse papier de Windows la valeur d'une variable string
Comment faire ?
Merci par avance pour votre aide
Pierre
Bonjour,
Tu mets ce code dans un module
puis pour copier
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 Private Declare Function OpenClipboard Lib "user32.dll" (ByVal hwnd As Long) As Long Private Declare Function EmptyClipboard Lib "user32.dll" () As Long Private Declare Function CloseClipboard Lib "user32.dll" () As Long Private Declare Function IsClipboardFormatAvailable Lib "user32.dll" (ByVal wFormat As Long) As Long Private Declare Function GetClipboardData Lib "user32.dll" (ByVal wFormat As Long) As Long Private Declare Function SetClipboardData Lib "user32.dll" (ByVal wFormat As Long, ByVal hMem As Long) As Long Private Declare Function GlobalAlloc Lib "Kernel32.dll" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long Private Declare Function GlobalLock Lib "Kernel32.dll" (ByVal hMem As Long) As Long Private Declare Function GlobalUnlock Lib "Kernel32.dll" (ByVal hMem As Long) As Long Private Declare Function GlobalSize Lib "kernel32" (ByVal hMem As Long) As Long Private Declare Function lstrcpy Lib "Kernel32.dll" Alias "lstrcpyW" (ByVal lpString1 As Long, ByVal lpString2 As Long) As Long Public Sub SetClipBoard(sUniText As String) Dim iStrPtr As Long Dim iLen As Long Dim iLock As Long Const GMEM_MOVEABLE As Long = &H2 Const GMEM_ZEROINIT As Long = &H40 Const CF_UNICODETEXT As Long = &HD OpenClipboard 0& EmptyClipboard iLen = LenB(sUniText) + 2& iStrPtr = GlobalAlloc(GMEM_MOVEABLE Or GMEM_ZEROINIT, iLen) iLock = GlobalLock(iStrPtr) lstrcpy iLock, StrPtr(sUniText) GlobalUnlock iStrPtr SetClipboardData CF_UNICODETEXT, iStrPtr CloseClipboard End Sub Public Function GetClipBoard() As String Dim iStrPtr As Long Dim iLen As Long Dim iLock As Long Dim sUniText As String Const CF_UNICODETEXT As Long = 13& OpenClipboard 0& If IsClipboardFormatAvailable(CF_UNICODETEXT) Then iStrPtr = GetClipboardData(CF_UNICODETEXT) If iStrPtr Then iLock = GlobalLock(iStrPtr) iLen = GlobalSize(iStrPtr) sUniText = String$(iLen \ 2& - 1&, vbNullChar) lstrcpy StrPtr(sUniText), iLock GlobalUnlock iStrPtr End If GetClipBoard = sUniText End If CloseClipboard End Function
et pour coller
Code : Sélectionner tout - Visualiser dans une fenêtre à part SetClipBoard CStr(TaVariable)
Code : Sélectionner tout - Visualiser dans une fenêtre à part TaVariable = GetClipBoard
Un travail qui plait est à moitié fait.
Bonjour à tous,
Je pense m'être mal exprimée
J'ai une variable MonRep
Je souhaite prendre en mémoire la valeur de cette variable
pour pouvoir coller cette valeur dans d'autres application.
En fait, cette variable contient un nom de volume, un chemin et un nom de répertoire MonRep = "W:\Bases\UsagersPièces\DUPONT_Jean\",
je cherche à mettre en mémoire cette valeur pour par exemple enregistrer un document Excel, Word, pdf ou autre scan directement dans le bon répertoire
J'ai bien fait un bricolage qui fonctionne, mais j'aimerais faire mieux
Merci par avance pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 If FolderExist("Me.U_Chemin_Pi?ces_Dossier") Then MonRep = Me.U_Chemin_Pi?ces_Dossier.Value Me.CheminEtAntiSlash = MonRep & "\" DoCmd.GoToControl "CheminEtAntiSlash" DoCmd.RunCommand acCmdCopy Me.Borne.SetFocus
Pierre
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager