Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1868to1872
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

Doppelklick Zwischenablage

Doppelklick Zwischenablage
21.02.2022 11:55:46
Andy
Guten Tag,
ich benötige mal etwas Hilfe bei einer - hoffentlich einfachen - Sache.
In einer Zelle berechne ich mir den Zellinhalt. Als Ergebnis steht dort dann ein Satz mit Werten, die ich aus anderen Zellen zusammensetze.
Nun möchte ich diesen Satz in der Zelle per Doppelklick in die Zwischenablage kopieren und in Teams einfach in einen Chat einfügen.
Folgendes Script habe ich mit Hilfe der Googlesuche auf meine Bedürfnisse angepasst:

Option Explicit
Public Text As String
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim oData As New DataObject
'Text ohne Formatierung in die Zwischenablage kopieren
Const C_CLASS_MSFORMS_DATAOBJECT As String = "new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}"
Dim o As Object              ' LateBinding (nur n�tig wenn keine Userform vorhanden ist)
Set o = CreateObject(C_CLASS_MSFORMS_DATAOBJECT) ' LateBinding
Text = Target.Resize(1, 1).Text
Call o.SetText(Text, 1)
Call o.PutInClipboard
Set o = Nothing
MsgBox Text 'Kontrolle Zwischenablage
End Sub
Beim Einfügen der Zwischenablage wird der Inhalt jedoch fast immer nur als ? eingefügt (auch in Notepad). Ab und zu funktioniert es auch mal komplett. Ich habe jedoch keinen Lösungsansatz für mein Problem. Vielleicht kann mir jemand helfen?
VG Andy

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelklick Zwischenablage
21.02.2022 12:03:01
{Boris}
Hi,
in ein allgemeines Modul:

Sub kopieren(DerWert As Variant)
Dim objClip As DataObject
Set objClip = New DataObject
objClip.SetText DerWert
objClip.PutInClipboard
End Sub
In das Codemodul des entsprechenden Tabellenbalttes:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Call kopieren(Target)
End Sub
Kann sein, dass Du noch ein leeres Userform einfügen musst, damit der Code läuft.
VG, Boris
AW: Doppelklick Zwischenablage
21.02.2022 12:48:12
klappt
Leider zeigt das Ergebnis auch nur ï¿¿ï¿¿
Muss dazu evtl. ein Verweis aktiviert werden oder der Zeichensatz irgendwie angepasst werden?
Anzeige
Userform habe ich auch hinzugefügt
21.02.2022 12:50:18
Andy
den VBA Code habe wir beschrieben im Module und Sheet eingebunden. Mit dem UF habe ich auch getestet.
leider ohne Erfolg...
Dann zeig doch bitte mal...
21.02.2022 12:53:18
{Boris}
Hi,
Deine Datei mit dem Zellwert, der als ï¿¿ï¿¿ in die Zwischenablage kopiert wird.
Kannst alles andere aus der Datei entfernen.
VG, Boris
kleine Ergänzung...
21.02.2022 16:05:55
Andy
mit dem folgenden Code kann man zwar den Zellinhalt kopieren, jedoch wird die Formatierung mit übernommen.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Target.Resize(1, 1).Copy
End Sub
Das Problem ist dabei nur, dass man den Text bei schwarzem Design in Text nicht lesen kann. Der Text muss also ohne Formatierung kopiert werden.
Anzeige
Keine Ahnung...
21.02.2022 16:21:55
{Boris}
Hi,
...ich stell mal auf offen.
Teste mal

Sub kopieren(DerWert As Range)
Dim objClip As DataObject
Set objClip = New DataObject
objClip.SetText DerWert
objClip.PutInClipboard
 MsgBox objClip.GetText
'Ergbnis der Zwischenablage:  ?
End Sub
Da wird der korrekte Inhalt der Zwischenablage angezeigt.
Also: Noch offen.
VG, Boris
AW: Keine Ahnung...
24.02.2022 11:17:16
Andy
Ich habe die Messagebox mal eingebunden und getestet:
gestern klappte es... heute leider wieder nicht, es erscheinen beim einfügen wieder die zwei ?
AW: Keine Ahnung...
27.02.2022 07:41:37
Oberschlumpf
Hi,
ich kann Boris Aussage bestätigen:
Sowohl in der MsgBox als auch in einer Worddatei wird der Inhalt einer beliebigen Zelle aus Excel per Doppelklick in die Zwi.ablage kopiert und dann eben angezeigt/eingefügt - ohne ?
Kann es vielleicht an deinem Excel und oder an deinem Computer liegen? (mit dein Excel mein ich nich die Bsp- oder Originaldatei, sondern das Programm selbst)
Hast du die Bsp/Original-Datei mal auf einem anderen Computer getestet?
Ciao
Thorsten
Anzeige
AW: Doppelklick Zwischenablage
23.02.2022 18:06:21
Yal
Hallo Andy,
kopiere wie gewonnt die Zelle mit Strg+C oder rechtklick, zweiter Eintrag "Kopieren",
In OneNote machst Du aber nicht faul Strg+V, sondern rechtsklick und die Einfügeoption mit dem "A": "nur den Text übernehmen (T)" anklicken.
"(T)" bedeutet in dem Fall, dass Du diese Einfügeoption, entweder
nachdem Du rechgeklickt und den Kontextmenü hast, "t" drucken kannst, oder
nachdem Du an der Zielstelle einmal geklickt hast, mit der Kontextmenü-Taste (neben dem rechte "Strg"-Taste) und dann "t"
das gleich erreichen kannst.
VBA jederzeit gern, aber in dem Fall eindeutig nein. Denn es müsste das Kopierverhalten in Excel beschränken, was nicht geht. Nur beim Einfügen wird auf das, was Du brauchst, beschränkt. Und das findet eben nicht mehr in Excel statt.
VG
Yal
Anzeige
Wie komme ich auf OneNote?
23.02.2022 18:45:02
Yal
Alternativ:
mit Power Shell den Inhalt vom Clipboard auf dem Text reduzieren:
Set-Clipboard $(Get-Clipboard -TextFormatType Text)
im Powershell ISE:
_ kopieren in Excel
_ mit Alt+Tab auf Powershell ISE, wo dieser Code bereit steht
_ F5 drücken (Run Script)
_ mit Alt-Tab in der Ziel-Anwendung wechseln
_ Strg+C
oder als Commandline (Win+R) oder in einem Batch-Datei auf dem Desktop, die mit einer Tastenkombi ausführbar wird (Die Winsecurity mögen das nicht):
powershell Set-Clipboard $(Get-Clipboard -TextFormatType Text)
es geht sogar über VBA:

Sub Makro1()
' Tastenkombination: Strg+b
Shell "powershell.exe Set-Clipboard $(Get-Clipboard -TextFormatType Text)", vbNormalFocus
End Sub
Da diese Makro den Kurzel Strg+b zugeordnet ist, muss man Strg+c, Strg+b (beachten, dass die Aktion ein gewisse Zeit braucht, daher NormalFocus), Strg+v
VG
Yal
Anzeige
AW: Wie komme ich auf OneNote?
24.02.2022 11:23:28
Andy
In Teams (nicht OneNote) steht mir leider nur die Funktion "einfügen STRG+V" in Kontextmenü zur Verfügung.
Dein PowerShell Vorschlag habe ich nicht so richtig verstanden, da ich mich in diesem Thema nicht auskenne. Wie wäre das denn an mein Beispiel anzupassen?
AW: Wie komme ich auf OneNote?
24.02.2022 11:38:39
Yal
Hallo Andy,
in solche Fälle mache ich
_ Strg+c (in Excel)
_ Win+r (öffnet "Ausführen")
_ Strg+v
_ Strg+a (alles markieren)
_ Strg+c
_ Strg+v (im Ziel-Anwendung)
Es hört sich umständlich, ist es aber nicht. Wenn man es verinnerlicht hat, ist es logisch und einfach. (na gut, ich bin zugegebenermassen Tastatur-Junky).
Ich mache dafür keine Spielerei mit Makros, die sowieso gestartet werden müssten, was auch umständlich ist.
VG
Yal
Anzeige
VBA noch nicht gelöst
24.02.2022 15:41:31
Andy
Das ist natürlich auch über notepad++ so zu lösen. Ist für meinen Fall aber zu umständlich, daher suche ich eine VBA Lösung.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige