Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: In Zwischenablage kopieren

In Zwischenablage kopieren
10.09.2021 08:13:29
Fanny
Guten Morgen da draußen. ich habe in einem TB ein Textfeld. nun würde ich gerne den Inhalt mit einem Button in die Zwischenablage kopieren, um den Inhalt anschließend im WEB einzufügen. Es gibt jede Menge Lösungen im WEB, diese beziehen sich jedoch auf eine TextBox nicht Textfeld und dann wird im Editor die Zeile gelb hinterlegt. Weis jemand eine Lösung? LG Fanny
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: In Zwischenablage kopieren
10.09.2021 08:46:17
Nepumuk
Hallo Fanny,
teste mal:

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 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
Public Sub Schaltfläche1_Klicken()
Call StringToClipboard(ActiveSheet.Shapes("Textfeld 1").OLEFormat.Object.Text)
End Sub
Es kann sein, dass ich dir das auf 32Bit umbauen muss.
Gruß
Nepumuk
Anzeige
AW: In Zwischenablage kopieren
10.09.2021 10:21:15
Fanny
Servus Nepumuk, Ich bin mit deinen Code total überfordert!! Außerdem muss ich dir berichten, dass er nicht den gewünschten Erfolg bringt. Im Prinzip macht er gar nichts. hmm? gibt es hier nicht einen 3zeiler? LG Fanny
AW: In Zwischenablage kopieren
10.09.2021 10:29:40
Nepumuk
Hallo Fanny,
kürzer geht es nicht:

Public Sub Schaltfläche1_Klicken()
Dim objClipBoard As Object
Set objClipBoard = CreateObject(Class:="new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
Call objClipBoard.SetText(ActiveSheet.Shapes("Textfeld 1").OLEFormat.Object.Text)
Call objClipBoard.PutInClipboard
Set objClipBoard = Nothing
End Sub
Ich bin mir aber nicht sicher dass es zu 100% funktioniert.
Gruß
Nepumuk
Anzeige
AW: In Zwischenablage kopieren
10.09.2021 11:03:17
Daniel
wird die Windows-Zwischenablage nicht auch bei einem normalen Kopieren einer Zelle befüllt?
wenn ja, müsste auch folgendes reichen:

Range("A1").value = ActiveSheet.Shapes("Textfeld 1").OLEFormat.Object.Text
Range("A1").Copy
Gruß Daniel
AW: In Zwischenablage kopieren
10.09.2021 11:59:05
Fanny
Servus Daniel, das war die Lösung!!! Dankeschön!!! Sicher wird ein echter VBA'ler sagen "welch hässliche Lösung" jedoch bin ich in VBA auch nicht so fit und daher für mich verständlich. Auch nochmals ein Dankeschön an Nepumuk. Schönes WE, LG Fanny
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige