Anzeige
Archiv - Navigation
1716to1720
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA - PutInClipboard bringt bei Paste zwei ??

VBA - PutInClipboard bringt bei Paste zwei ?
04.10.2019 12:57:51
Arnd-Olav
Hallo,
ich fand den unteren Code, um den Wert einer Zelle ins Clipboard zu packen.
Wenn ich danach STRG-V drücke bekomme ich aber zwei "Fragezeichen".
In der Clipboard Ansicht in Excel sehe ich den tatsächlichen Zellwert und kann diesen von dort aus per Klick auch einfügen.
Nur über STRG-V bekomme ich die beiden "Fragezeichen"
Hier ist der code, weiß jemand woran das liegt?

Sub copy_to_CB3()
Dim objClip As New DataObject
Dim strTmp As String
With Worksheets("POG_UI")
Range("B100").Value = Range("B35").Value
strTmp = Worksheets("POG_UI").Cells(100, 2).Value
objClip.SetText strTmp
objClip.PutInClipboard
End With
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - PutInClipboard bringt bei Paste zwei ?
04.10.2019 13:40:39
Torsten
Hallo Arnd-Olav,
ich glaube das funktioniert nicht mit den Strg+V zum Einfuegen mit PutInClipboard.
Ich kann dir diese Funktion anbieten. Damit kannst du den Wert auch ausserhalb von Excel mit Strg+V einfuegen.

Option Explicit
Private Declare Function OpenClipboard Lib "user32.dll" ( _
ByVal hWnd As Long) As Long
Private Declare Function CloseClipboard Lib "user32.dll" () As Long
Private Declare Function EmptyClipboard Lib "user32.dll" () 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 GlobalFree Lib "kernel32.dll" ( _
ByVal hMem As Long) As Long
Private Declare Function lstrcpy Lib "kernel32.dll" ( _
ByVal lpStr1 As Any, _
ByVal lpStr2 As Any) As Long
Private Const CF_TEXT As Long = 1&
Private Const GMEM_MOVEABLE As Long = 2&
Sub copy_to_CB3()
Dim objClip As New DataObject
Dim strTmp As String
With Worksheets("POG_UI")
.Range("B100").value = .Range("B35").value
strTmp = .Cells(100, 2).value
End With
Call StringToClipboard(strTmp)
End Sub
Private Sub StringToClipboard(strText As String)
Dim lngIdentifier As Long, lngPointer As Long
lngIdentifier = GlobalAlloc(GMEM_MOVEABLE, Len(strText) + 1)
lngPointer = GlobalLock(lngIdentifier)
Call lstrcpy(ByVal lngPointer, strText)
Call GlobalUnlock(lngIdentifier)
Call OpenClipboard(0&)
Call EmptyClipboard
Call SetClipboardData(CF_TEXT, lngIdentifier)
Call CloseClipboard
Call GlobalFree(lngIdentifier)
End Sub
Gruss Torsten
Anzeige
AW: VBA - PutInClipboard bringt bei Paste zwei ?
04.10.2019 14:46:25
Arnd-Olav
Du bist der Beste :D
Vielen Dank fuer die Blumen...
04.10.2019 14:56:30
Torsten
...aber der Beste ist zu viel gesagt.
Schoenes WE

106 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige