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

Forumthread: Zelleninhalt per Klick in die Zwischenablage

Zelleninhalt per Klick in die Zwischenablage
29.05.2008 18:13:00
Ingo
Hallo
Ich habe folgendes anliegen:
In einer Excel-Tabelle soll bei Klick auf eine Zelleninhalt dieser in die Zwischenablage kopiert werden.
Also wenn ich auf eine x-beliebige Zelle der Tabelle klicke, soll deren Inhalt (Text) in der Zwischenablage von Windows landen.
Könntet Ihr mir da vieleicht helfen?
Ich bin leider nicht so gut in VBA :-))
Gruß aus Münster
Ingo Siemon

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Zelleninhalt in die Zwischenablage kopieren
29.05.2008 18:25:00
NoNet
allo Ingo,
kopiere folgenden Code in das Klassenmodul des Tabellenblattes :
VBA-Code:
'Verweis auf "Microsoft Forms 2.0 Object Library" erforderlich
'C:\Winnt\System32\FM20.DLL
Dim MyData As DataObject
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Set MyData = New DataObject
    MyData.SetText ActiveCell.Text
    MyData.PutInClipboard
End Sub
Gruß, NoNet

Anzeige
AW: Zelleninhalt in die Zwischenablage kopieren
29.05.2008 18:54:56
Ingo
Tach NoNet
Oh ja super.
Das klappt wunderbar.
Vielen Dank für die Hilfe.
Eine Frage noch.
Nun ist es ja so, dass immer die aktive Zelle in die Zwischenablage kommt, richtig?
Könnte man es auch so machen, dass der Zelleninhalt erst bei Doppelklick in die Zwischenablage kopiert wird?
Gruß
Ingo

Anzeige
Ja, verwende "Worksheet_BeforeDoubleClick"
29.05.2008 19:14:00
NoNet
Hallo Simon,
dann füge den Code in das Doppelklick-Ereignis ein :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'hier der Code
End Sub


Gruß, NoNet

AW: Ja, verwende "Worksheet_BeforeDoubleClick"
29.05.2008 19:26:00
Ingo
Hallo
Jo alles klar. Danke für die schnelle und nette Hilfe.
Gruß
Ingo

Anzeige
AW: Ja, verwende "Worksheet_BeforeDoubleClick"
30.05.2008 07:37:18
Ingo
Hallo doch noch mal
Nun habe schon wieder eine Frage dazu:
Lässt es sich auch machen, dass das mit dem Klick-Kopieren nur in bestimmten Zeilen funktioniert?
Also nur wenn ich auf eine Zelle der Zeilen 1-22 klicke, soll der Zelleninhalt in die Zwischenablage kopiert werden.
Wenn ich z.B. auf eine Zelle in Zeile 25 klicke, soll nichts kopiert werden.
Über nochmalige Hilfe würde ich mich nochmals sehr freuen.
Gruß
Ingo

Anzeige
AW: Ja, verwende "Worksheet_BeforeDoubleClick"
30.05.2008 11:51:16
Renee
Hi Ingo,
Den gesamten Code in das Tabellenblatt:

Option Explicit
Dim MyData As DataObject
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("1:22")) Is Nothing Or IsEmpty(Target) Then Exit Sub
Cancel = True
Set MyData = New DataObject
MyData.SetText ActiveCell.Text
MyData.PutInClipboard
MsgBox "[" & ActiveCell.Text & "]" & vbCrLf & _
"in der Zwischenablage!", vbOKOnly + vbInformation, "Copy Done!"
End Sub


GreetZ Renée

Anzeige
Danke
30.05.2008 14:17:44
Ingo
Danke
Anzeige
Anzeige

Infobox / Tutorial

Zelleninhalt per Klick in die Zwischenablage kopieren


Schritt-für-Schritt-Anleitung

Um den Inhalt einer Zelle per Klick in die Zwischenablage zu kopieren, kannst Du folgenden VBA-Code verwenden. Dieser wird in das Klassenmodul des entsprechenden Tabellenblatts eingefügt.

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Tabellenblatt auswählen: Wähle das Tabellenblatt aus, in dem Du die Funktion implementieren möchtest.
  3. Code einfügen: Füge den folgenden Code in das Modul ein.
Dim MyData As DataObject

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Intersect(Target, Range("1:22")) Is Nothing Or IsEmpty(Target) Then Exit Sub
    Cancel = True
    Set MyData = New DataObject
    MyData.SetText ActiveCell.Text
    MyData.PutInClipboard
    MsgBox "[" & ActiveCell.Text & "]" & vbCrLf & "in der Zwischenablage!", vbOKOnly + vbInformation, "Copy Done!"
End Sub
  1. Microsoft Forms 2.0 Object Library aktivieren: Stelle sicher, dass Du die "Microsoft Forms 2.0 Object Library" in den Verweisen aktiviert hast. Gehe dazu auf Extras > Verweise.

Häufige Fehler und Lösungen

  • Fehler: "Typ nicht definiert"

    • Lösung: Stelle sicher, dass die "Microsoft Forms 2.0 Object Library" aktiviert ist.
  • Fehler: Nichts passiert beim Doppelklick

    • Lösung: Überprüfe, ob Du in den Zeilen 1-22 klickst. Der Code ist so eingestellt, dass nur in diesen Zeilen der Inhalt kopiert wird.

Alternative Methoden

Falls Du nicht mit VBA arbeiten möchtest, gibt es auch die Möglichkeit, Hyperlinks oder die Kopieren-Funktion von Excel zu nutzen. Diese Methoden sind allerdings nicht so flexibel und erfordern manuelle Schritte:

  1. Manuelles Kopieren: Markiere die Zelle und drücke CTRL + C.
  2. Hyperlink erstellen: Du kannst auch Hyperlinks verwenden, um auf einen anderen Bereich zu verweisen, aber dies kopiert nicht den Zelleninhalt in die Zwischenablage.

Praktische Beispiele

  1. Kopieren bei Doppelklick: Mit dem oben genannten Code wird beim Doppelklick auf eine Zelle in den Zeilen 1-22 der Zelleninhalt in die Zwischenablage kopiert.
  2. Benachrichtigung: Der Code zeigt eine Nachricht an, die bestätigt, dass der Zelleninhalt in der Zwischenablage gespeichert wurde.

Tipps für Profis

  • Anpassung der Zeilen: Du kannst die Zeilen im Code leicht anpassen, um den Bereich zu ändern, in dem das Kopieren erlaubt ist. Ändere einfach Range("1:22") in den gewünschten Bereich.
  • Verwendung von ActiveCell: Wenn Du den Zelleninhalt einer spezifischen Zelle kopieren möchtest, kannst Du auch Target.Text anstelle von ActiveCell.Text verwenden.

FAQ: Häufige Fragen

1. Kann ich den Code auch für andere Excel-Versionen verwenden? Ja, der Code sollte in den meisten modernen Excel-Versionen (ab Excel 2007) funktionieren.

2. Wie kann ich den Code anpassen, um auch andere Datenformate zu kopieren? Du kannst die Methode MyData.SetText anpassen, um auch andere Formate wie Zahlen oder Formeln zu kopieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige