AW: Übersicht würde fehlen
21.12.2005 23:46:54
Erich
Hallo Rico,
wenn alle selektierten Zellen im aktiven Tabellenblatt in die Zwischenablage kopiert werden und zwischen den Zellwerten Leerzeielen stehen sollen, müsste das mit der Prozedur "Auswahl_in_Zwischenablage" gehen:
Option Explicit
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 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 GlobalFree Lib "kernel32" ( _
ByVal hMem As Long) As Long
Private Declare Function lstrcpy Lib "kernel32" ( _
ByVal lpStr1 As Any, _
ByVal lpStr2 As Any) As Long
Private Const GMEM_MOVEABLE As Long = 2&
Private Const CF_TEXT As Long = 1&
Sub Auswahl_in_Zwischenablage()
Const Leer As String = vbCrLf
Dim strCP As String, rg As Range
For Each rg In Selection
strCP = strCP & rg & Leer & Leer
Next rg
StringToClipboard Left(strCP, Len(strCP) - 2 * Len(Leer))
End Sub
Public Sub StringToClipboard(s As String)
' von Risi Thomas Softwareentwicklung www.rtsoftwaredevelopment.de
Dim hMem As Long, hPtr As Long
hMem = GlobalAlloc(GMEM_MOVEABLE, Len(s) + 1)
hPtr = GlobalLock(hMem)
lstrcpy hPtr, s
GlobalUnlock hMem
OpenClipboard 0&
EmptyClipboard
SetClipboardData CF_TEXT, hMem
CloseClipboard
GlobalFree hMem
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort