Texte dans presse papier

Le
Alf
Bonjour à tous,

Comment copier un texte quelconque (non issu d'une cellule) dans le presse =
papier dans une macro VBA ?
Je voudrais ensuite faire un coller dans une autre application

Merci pour votre aide
Alf
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Michel__D
Le #26443487
Bonjour,
Le 02/09/2017 13:09, Alf a écrit :
Bonjour à tous,
Comment copier un texte quelconque (non issu d'une cellule) dans le presse papier dans une macro VBA ?
Je voudrais ensuite faire un coller dans une autre application...
Merci pour votre aide
Alf

Regarde le lien ci-dessous
https://www.thespreadsheetguru.com/blog/2015/1/13/how-to-use-vba-code-to-copy-text-to-the-clipboard
Alf
Le #26443496
Le samedi 2 septembre 2017 13:09:58 UTC+2, Alf a écrit :
Bonjour à tous,
Comment copier un texte quelconque (non issu d'une cellule) dans le press e papier dans une macro VBA ?
Je voudrais ensuite faire un coller dans une autre application...
Merci pour votre aide
Alf

Bonjour,
J'avais trouvé ce lien mais lorsque je fais mon CTRL+V dans, par exemp le, le bloc note, rien n'est copié...
Merci pour votre aide
Alf
News.aioe.org
Le #26443498
Bonjour,
Si le texte ne se trouve pas dans une cellule, où est le texte que tu veux
copier dans le presse-papier?
Donne quelques exemples clairs et précis de ce que tu veux faire...
MichD
Michel__D
Le #26443500
Re,
Le 02/09/2017 15:07, Alf a écrit :
Le samedi 2 septembre 2017 13:09:58 UTC+2, Alf a écrit :
Bonjour à tous,
Comment copier un texte quelconque (non issu d'une cellule) dans le presse papier dans une macro VBA ?
Je voudrais ensuite faire un coller dans une autre application...
Merci pour votre aide
Alf

Bonjour,
J'avais trouvé ce lien mais lorsque je fais mon CTRL+V dans, par exemple, le bloc note, rien n'est copié...
Merci pour votre aide
Alf

Voici le code que j'utilise (qui fonctionne)
' Module1
Option Explicit
Declare Function OpenClipboard Lib "user32.dll" (ByVal hWnd As Long) As Long
Declare Function CloseClipboard Lib "user32.dll" () As Long
Declare Function EmptyClipboard Lib "user32.dll" () As Long
Declare Function IsClipboardFormatAvailable Lib "user32.dll" (ByVal wFormat As Long) As Long
Declare Function GetClipboardData Lib "user32.dll" (ByVal wFormat As Long) As Long
Declare Function SetClipboardData Lib "user32.dll" (ByVal wFormat As Long, ByVal hMem As Long) As Long
Declare Function GlobalAlloc Lib "kernel32.dll" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long
Declare Function GlobalLock Lib "kernel32.dll" (ByVal hMem As Long) As Long
Declare Function GlobalUnlock Lib "kernel32.dll" (ByVal hMem As Long) As Long
Declare Function GlobalSize Lib "kernel32.dll" (ByVal hMem As Long) As Long
Declare Function lstrcpy Lib "kernel32.dll" (ByVal lpString1 As Any, ByVal lpString2 As Any) As Long
Public Const GHND = &H42
Public Const CF_TEXT = 1 ' Const CF_UNICODETEXT As Long = &HD
Function SetClipboard(MyString As String)
' https://www.thespreadsheetguru.com/blog/2015/1/13/how-to-use-vba-code-to-copy-text-to-the-clipboard
Dim hGlobalMemory As Long, lpGlobalMemory As Long
Dim hClipMemory As Long, X As Long
If Len(MyString) = 0 Then
If OpenClipboard(0&) = 0 Then
MsgBox "Could not open the Clipboard. Copy aborted."
Exit Function
End If
X = EmptyClipboard()
If CloseClipboard() = 0 Then MsgBox "Could not close Clipboard."
Else
hGlobalMemory = GlobalAlloc(GHND, Len(MyString) + 1) ' Allocate moveable global memory
lpGlobalMemory = GlobalLock(hGlobalMemory) ' Lock mem. to get a far pointer to this memory.
lpGlobalMemory = lstrcpy(lpGlobalMemory, MyString) ' Copy the string to this global memory.
If GlobalUnlock(hGlobalMemory) <> 0 Then ' Unlock the memory.
MsgBox "Could not unlock memory location. Copy aborted."
Else
If OpenClipboard(0&) = 0 Then ' Open the Clipboard to copy data to.
MsgBox "Could not open the Clipboard. Copy aborted."
Exit Function
End If
X = EmptyClipboard() ' Clear the Clipboard.
hClipMemory = SetClipboardData(CF_TEXT, hGlobalMemory) ' Copy the data to the Clipboard.
If CloseClipboard() = 0 Then MsgBox "Could not close Clipboard."
End If
End If
End Function
Alf
Le #26443577
Le samedi 2 septembre 2017 13:09:58 UTC+2, Alf a écrit :
Bonjour à tous,
Comment copier un texte quelconque (non issu d'une cellule) dans le press e papier dans une macro VBA ?
Je voudrais ensuite faire un coller dans une autre application...
Merci pour votre aide
Alf

Bonjour,
Là, ça fonctionne....
Jamais je n'aurais pu trouver çà tout seul..
Merci pour ton aide Michel..
Mais le plus simple aurait été, peut être, de copier le text e temporairement dans une cellule et de faire un copy paste...?
Je ne sais pas si ça aurait pu marcher...
Encore Merci
Alf
Le #26443576
Le samedi 2 septembre 2017 13:09:58 UTC+2, Alf a écrit :
Bonjour à tous,
Comment copier un texte quelconque (non issu d'une cellule) dans le press e papier dans une macro VBA ?
Je voudrais ensuite faire un coller dans une autre application...
Merci pour votre aide
Alf

Encore une question, le code est-il lié aux différentes versions d'excel ou de windows ?
Publicité
Poster une réponse
Anonyme