Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1844to1848
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
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

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

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige