Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1840to1844
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
Per Linksklick in die Zwischenablage
22.07.2021 15:25:00
oraculix
Hallo
In dem Makro soll nur per linker Maustaste die Markierte Stelle in die Zwischenablage kopiert werden.
Was aber nicht Funktioniert zumindest nicht immer!
Frage : Wie kann man den Code verbessern das er immer funktioniert?
'Klick mit linker Maus Kopiert Markierung in die Zwischenablage

Private Sub ListBox1_Click()
Dim objDataObject As DataObject
Set objDataObject = New DataObject
Call objDataObject.SetText(Text:=ListBox1.Text)
Call objDataObject.PutInClipboard
Set objDataObject = Nothing
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Per Linksklick in die Zwischenablage
22.07.2021 15:42:12
Nepumuk
Hallo,
das funktioniert immer:

Option Explicit
Private Declare PtrSafe Function OpenClipboard Lib "user32.dll" ( _
ByVal hwnd As LongPtr) As Long
Private Declare PtrSafe Function CloseClipboard Lib "user32" () As Long
Private Declare PtrSafe Function EmptyClipboard Lib "user32" () As Long
Private Declare PtrSafe Function SetClipboardData Lib "user32" ( _
ByVal wFormat As Long, _
ByVal hMem As LongPtr) As LongPtr
Private Declare PtrSafe Function GlobalAlloc Lib "kernel32.dll" ( _
ByVal wFlags As Long, _
ByVal dwBytes As LongPtr) As LongPtr
Private Declare PtrSafe Function GlobalLock Lib "kernel32.dll" ( _
ByVal hMem As LongPtr) As LongPtr
Private Declare PtrSafe Function GlobalUnlock Lib "kernel32.dll" ( _
ByVal hMem As LongPtr) As Long
Private Declare PtrSafe Function GlobalFree Lib "kernel32.dll" ( _
ByVal hMem As LongPtr) As LongPtr
Private Declare PtrSafe Function lstrcpy Lib "kernel32.dll" ( _
ByVal lpStr1 As Any, _
ByVal lpStr2 As Any) As LongPtr
Private Const CF_TEXT As Long = 1&
Private Const GMEM_MOVEABLE As Long = 2
Private Sub ListBox1_Click()
Call StringToClipboard(ListBox1.Text)
End Sub
Private Sub StringToClipboard(strText As String)
Dim lngptrIdentifier As LongPtr, lngptrPointer As LongPtr
lngptrIdentifier = GlobalAlloc(GMEM_MOVEABLE, CLngPtr(Len(strText) + 1))
lngptrPointer = GlobalLock(lngptrIdentifier)
Call lstrcpy(ByVal lngptrPointer, strText)
Call GlobalUnlock(lngptrIdentifier)
Call OpenClipboard(CLngPtr(0))
Call EmptyClipboard
Call SetClipboardData(CF_TEXT, lngptrIdentifier)
Call CloseClipboard
Call GlobalFree(lngptrIdentifier)
End Sub
Gruß
Nepumuk
Anzeige
AW: Per Linksklick in die Zwischenablage
22.07.2021 15:54:24
oraculix
Super Danke funkt sehr gut!!!
Das Andere Projekt von gestern habe ich aufgegeben. Habe alle Fehler ausgebessert Tag und Nacht.
Aber die doppelten schreibt er immer in Spalte C muss mal nachdenken wie ich das mit den Film Infos aus der Html Datei in Spalte C bekomme.

271 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige