Bonsoir à tous,
Comment en vba copier une variable chaîne pour pouvoir la copier dans
un autre document ?
... et merci d'avance pour vos réponses.
Marc
Bonsoir à tous,
Comment en vba copier une variable chaîne pour pouvoir la copier dans
un autre document ?
... et merci d'avance pour vos réponses.
Marc
Bonsoir à tous,
Comment en vba copier une variable chaîne pour pouvoir la copier dans
un autre document ?
... et merci d'avance pour vos réponses.
Marc
Bonjour/soir,
Voici un bout de code qui devrait le faire:
Option Explicit
Private Declare Function SetClipboardData Lib "user32" (ByVal wFormat As
Long, ByVal hMem As Long) As Long
Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long,
ByVal dwBytes As Long) As Long
Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As
Long
Private Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long)
As
Long
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long)
As
Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory"
(Destination As Any, Source As Any, ByVal Length As Long)
Private Const GMEM_MOVEABLE = &H2
Private Const CF_TEXT = 1
Private Sub Command1_Click()
Debug.Print SetCliboardText(Text1.Text)
End Sub
'Exemple traduit du platform SDK
Function SetCliboardText(strText As String) As Boolean
Dim Buffer() As Byte
Dim lptstrCopy As Long
Dim hglbCopy As Long
'Ouve le presse papier et le vide
If OpenClipboard(0&) Then
EmptyClipboard
Buffer = StrConv(strText & Chr$(0), vbFromUnicode)
'Alloue un objet mémoire global pour le texte.
hglbCopy = GlobalAlloc(GMEM_MOVEABLE, UBound(Buffer) + 1)
If hglbCopy Then
'Verouille le handle et copie le texte dans le buffer.
lptstrCopy = GlobalLock(hglbCopy)
CopyMemory ByVal lptstrCopy&, Buffer(0), UBound(Buffer) + 1
GlobalUnlock hglbCopy
'Place le handle dans le clipboard
SetCliboardText = SetClipboardData(CF_TEXT, hglbCopy)
Erase Buffer
Else
SetCliboardText = False
End If
CloseClipboard
Else
SetCliboardText = False
End If
End Function
Sinon, tu peux aller voir sur le site de Karl E. Peterson
(http://www.mvps.org/vb/), l'exemple clipex qui est nettement plus complet
que mon petit bout de code ;-)
--
François Picalausa
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com
"Marc Paris" a écrit dans le message de
news:Bonsoir à tous,
Comment en vba copier une variable chaîne pour pouvoir la copier dans
un autre document ?
... et merci d'avance pour vos réponses.
Marc
Bonjour/soir,
Voici un bout de code qui devrait le faire:
Option Explicit
Private Declare Function SetClipboardData Lib "user32" (ByVal wFormat As
Long, ByVal hMem As Long) As Long
Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long,
ByVal dwBytes As Long) As Long
Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As
Long
Private Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long)
As
Long
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long)
As
Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory"
(Destination As Any, Source As Any, ByVal Length As Long)
Private Const GMEM_MOVEABLE = &H2
Private Const CF_TEXT = 1
Private Sub Command1_Click()
Debug.Print SetCliboardText(Text1.Text)
End Sub
'Exemple traduit du platform SDK
Function SetCliboardText(strText As String) As Boolean
Dim Buffer() As Byte
Dim lptstrCopy As Long
Dim hglbCopy As Long
'Ouve le presse papier et le vide
If OpenClipboard(0&) Then
EmptyClipboard
Buffer = StrConv(strText & Chr$(0), vbFromUnicode)
'Alloue un objet mémoire global pour le texte.
hglbCopy = GlobalAlloc(GMEM_MOVEABLE, UBound(Buffer) + 1)
If hglbCopy Then
'Verouille le handle et copie le texte dans le buffer.
lptstrCopy = GlobalLock(hglbCopy)
CopyMemory ByVal lptstrCopy&, Buffer(0), UBound(Buffer) + 1
GlobalUnlock hglbCopy
'Place le handle dans le clipboard
SetCliboardText = SetClipboardData(CF_TEXT, hglbCopy)
Erase Buffer
Else
SetCliboardText = False
End If
CloseClipboard
Else
SetCliboardText = False
End If
End Function
Sinon, tu peux aller voir sur le site de Karl E. Peterson
(http://www.mvps.org/vb/), l'exemple clipex qui est nettement plus complet
que mon petit bout de code ;-)
--
François Picalausa
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com
"Marc Paris" <info@marc-paris.de> a écrit dans le message de
news:usWrBhSiDHA.3556@tk2msftngp13.phx.gbl
Bonsoir à tous,
Comment en vba copier une variable chaîne pour pouvoir la copier dans
un autre document ?
... et merci d'avance pour vos réponses.
Marc
Bonjour/soir,
Voici un bout de code qui devrait le faire:
Option Explicit
Private Declare Function SetClipboardData Lib "user32" (ByVal wFormat As
Long, ByVal hMem As Long) As Long
Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long,
ByVal dwBytes As Long) As Long
Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As
Long
Private Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long)
As
Long
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long)
As
Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory"
(Destination As Any, Source As Any, ByVal Length As Long)
Private Const GMEM_MOVEABLE = &H2
Private Const CF_TEXT = 1
Private Sub Command1_Click()
Debug.Print SetCliboardText(Text1.Text)
End Sub
'Exemple traduit du platform SDK
Function SetCliboardText(strText As String) As Boolean
Dim Buffer() As Byte
Dim lptstrCopy As Long
Dim hglbCopy As Long
'Ouve le presse papier et le vide
If OpenClipboard(0&) Then
EmptyClipboard
Buffer = StrConv(strText & Chr$(0), vbFromUnicode)
'Alloue un objet mémoire global pour le texte.
hglbCopy = GlobalAlloc(GMEM_MOVEABLE, UBound(Buffer) + 1)
If hglbCopy Then
'Verouille le handle et copie le texte dans le buffer.
lptstrCopy = GlobalLock(hglbCopy)
CopyMemory ByVal lptstrCopy&, Buffer(0), UBound(Buffer) + 1
GlobalUnlock hglbCopy
'Place le handle dans le clipboard
SetCliboardText = SetClipboardData(CF_TEXT, hglbCopy)
Erase Buffer
Else
SetCliboardText = False
End If
CloseClipboard
Else
SetCliboardText = False
End If
End Function
Sinon, tu peux aller voir sur le site de Karl E. Peterson
(http://www.mvps.org/vb/), l'exemple clipex qui est nettement plus complet
que mon petit bout de code ;-)
--
François Picalausa
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com
"Marc Paris" a écrit dans le message de
news:Bonsoir à tous,
Comment en vba copier une variable chaîne pour pouvoir la copier dans
un autre document ?
... et merci d'avance pour vos réponses.
Marc
Bonsoir,
Tout d'abord merci !
Ceci me paraît bien compliqué pour faire ce que je souhaite ou alors,
je me suis mal exprimé.
En fait je voudrais copier une chaîne de caractères fabriquée en vb
dans n'importe quelle application par la commande coller (équivalent
des combinaisons de touches ctl+V)
Marc
"François Picalausa" a écrit dans le message de
news:Bonjour/soir,
Voici un bout de code qui devrait le faire:
Option Explicit
Private Declare Function SetClipboardData Lib "user32" (ByVal
wFormat As Long, ByVal hMem As Long) As Long
Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As
Long, ByVal dwBytes As Long) As Long
Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As
Long) As Long
Private Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As
Long) As Long
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As
Long) As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory"
(Destination As Any, Source As Any, ByVal Length As Long)
Private Const GMEM_MOVEABLE = &H2
Private Const CF_TEXT = 1
Private Sub Command1_Click()
Debug.Print SetCliboardText(Text1.Text)
End Sub
'Exemple traduit du platform SDK
Function SetCliboardText(strText As String) As Boolean
Dim Buffer() As Byte
Dim lptstrCopy As Long
Dim hglbCopy As Long
'Ouve le presse papier et le vide
If OpenClipboard(0&) Then
EmptyClipboard
Buffer = StrConv(strText & Chr$(0), vbFromUnicode)
'Alloue un objet mémoire global pour le texte.
hglbCopy = GlobalAlloc(GMEM_MOVEABLE, UBound(Buffer) + 1)
If hglbCopy Then
'Verouille le handle et copie le texte dans le buffer.
lptstrCopy = GlobalLock(hglbCopy)
CopyMemory ByVal lptstrCopy&, Buffer(0), UBound(Buffer)
+ 1 GlobalUnlock hglbCopy
'Place le handle dans le clipboard
SetCliboardText = SetClipboardData(CF_TEXT, hglbCopy)
Erase Buffer
Else
SetCliboardText = False
End If
CloseClipboard
Else
SetCliboardText = False
End If
End Function
Sinon, tu peux aller voir sur le site de Karl E. Peterson
(http://www.mvps.org/vb/), l'exemple clipex qui est nettement plus
complet que mon petit bout de code ;-)
--
François Picalausa
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com
"Marc Paris" a écrit dans le message de
news:Bonsoir à tous,
Comment en vba copier une variable chaîne pour pouvoir la copier
dans un autre document ?
... et merci d'avance pour vos réponses.
Marc
Bonsoir,
Tout d'abord merci !
Ceci me paraît bien compliqué pour faire ce que je souhaite ou alors,
je me suis mal exprimé.
En fait je voudrais copier une chaîne de caractères fabriquée en vb
dans n'importe quelle application par la commande coller (équivalent
des combinaisons de touches ctl+V)
Marc
"François Picalausa" <fpicalausa@chez.com> a écrit dans le message de
news: uGDkC7biDHA.4012@tk2msftngp13.phx.gbl...
Bonjour/soir,
Voici un bout de code qui devrait le faire:
Option Explicit
Private Declare Function SetClipboardData Lib "user32" (ByVal
wFormat As Long, ByVal hMem As Long) As Long
Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As
Long, ByVal dwBytes As Long) As Long
Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As
Long) As Long
Private Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As
Long) As Long
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As
Long) As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory"
(Destination As Any, Source As Any, ByVal Length As Long)
Private Const GMEM_MOVEABLE = &H2
Private Const CF_TEXT = 1
Private Sub Command1_Click()
Debug.Print SetCliboardText(Text1.Text)
End Sub
'Exemple traduit du platform SDK
Function SetCliboardText(strText As String) As Boolean
Dim Buffer() As Byte
Dim lptstrCopy As Long
Dim hglbCopy As Long
'Ouve le presse papier et le vide
If OpenClipboard(0&) Then
EmptyClipboard
Buffer = StrConv(strText & Chr$(0), vbFromUnicode)
'Alloue un objet mémoire global pour le texte.
hglbCopy = GlobalAlloc(GMEM_MOVEABLE, UBound(Buffer) + 1)
If hglbCopy Then
'Verouille le handle et copie le texte dans le buffer.
lptstrCopy = GlobalLock(hglbCopy)
CopyMemory ByVal lptstrCopy&, Buffer(0), UBound(Buffer)
+ 1 GlobalUnlock hglbCopy
'Place le handle dans le clipboard
SetCliboardText = SetClipboardData(CF_TEXT, hglbCopy)
Erase Buffer
Else
SetCliboardText = False
End If
CloseClipboard
Else
SetCliboardText = False
End If
End Function
Sinon, tu peux aller voir sur le site de Karl E. Peterson
(http://www.mvps.org/vb/), l'exemple clipex qui est nettement plus
complet que mon petit bout de code ;-)
--
François Picalausa
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com
"Marc Paris" <info@marc-paris.de> a écrit dans le message de
news:usWrBhSiDHA.3556@tk2msftngp13.phx.gbl
Bonsoir à tous,
Comment en vba copier une variable chaîne pour pouvoir la copier
dans un autre document ?
... et merci d'avance pour vos réponses.
Marc
Bonsoir,
Tout d'abord merci !
Ceci me paraît bien compliqué pour faire ce que je souhaite ou alors,
je me suis mal exprimé.
En fait je voudrais copier une chaîne de caractères fabriquée en vb
dans n'importe quelle application par la commande coller (équivalent
des combinaisons de touches ctl+V)
Marc
"François Picalausa" a écrit dans le message de
news:Bonjour/soir,
Voici un bout de code qui devrait le faire:
Option Explicit
Private Declare Function SetClipboardData Lib "user32" (ByVal
wFormat As Long, ByVal hMem As Long) As Long
Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As
Long, ByVal dwBytes As Long) As Long
Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As
Long) As Long
Private Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As
Long) As Long
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As
Long) As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory"
(Destination As Any, Source As Any, ByVal Length As Long)
Private Const GMEM_MOVEABLE = &H2
Private Const CF_TEXT = 1
Private Sub Command1_Click()
Debug.Print SetCliboardText(Text1.Text)
End Sub
'Exemple traduit du platform SDK
Function SetCliboardText(strText As String) As Boolean
Dim Buffer() As Byte
Dim lptstrCopy As Long
Dim hglbCopy As Long
'Ouve le presse papier et le vide
If OpenClipboard(0&) Then
EmptyClipboard
Buffer = StrConv(strText & Chr$(0), vbFromUnicode)
'Alloue un objet mémoire global pour le texte.
hglbCopy = GlobalAlloc(GMEM_MOVEABLE, UBound(Buffer) + 1)
If hglbCopy Then
'Verouille le handle et copie le texte dans le buffer.
lptstrCopy = GlobalLock(hglbCopy)
CopyMemory ByVal lptstrCopy&, Buffer(0), UBound(Buffer)
+ 1 GlobalUnlock hglbCopy
'Place le handle dans le clipboard
SetCliboardText = SetClipboardData(CF_TEXT, hglbCopy)
Erase Buffer
Else
SetCliboardText = False
End If
CloseClipboard
Else
SetCliboardText = False
End If
End Function
Sinon, tu peux aller voir sur le site de Karl E. Peterson
(http://www.mvps.org/vb/), l'exemple clipex qui est nettement plus
complet que mon petit bout de code ;-)
--
François Picalausa
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com
"Marc Paris" a écrit dans le message de
news:Bonsoir à tous,
Comment en vba copier une variable chaîne pour pouvoir la copier
dans un autre document ?
... et merci d'avance pour vos réponses.
Marc