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

Forumthread: Zellen per Doppelklick in die Zwischenablage

Zellen per Doppelklick in die Zwischenablage
03.02.2017 13:42:09
Inshin
Hallo,
werde leider nicht fündig und komme nicht weiter.
Möchte per Doppelklick die aktive Zelle plus die 2 Nachbarzellen (rechts) in die Zwischenablage kopieren.
Habe folgenden Code gefunden der mit der aktiven Zelle funktioniert.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
MyData.SetText ActiveCell.Text
MyData.PutInClipboard
MsgBox "[" & ActiveCell.Text & "]" & vbCrLf & _
"in der Zwischenablage!", vbOKOnly + vbInformation, "Copy Done!"
End Sub

Beispiel:
Klick z.B. auf A1 soll A1-A3 in die Zwischenablage kopieren
Danke für eure Unterstützung
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen per Doppelklick in die Zwischenablage
03.02.2017 13:52:10
ransi
Hallo,
Versuch mal so:
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    Target.Resize(1, 3).Copy
End Sub


ransi
Anzeige
AW: Zellen per Doppelklick in die Zwischenablage
03.02.2017 14:52:15
Inshin
yes...funktioniert.
Vielen Dank
AW: Zellen per Doppelklick in die Zwischenablage
03.02.2017 14:57:27
Inshin
...allerding ist die andere Version etwas eleganter da nun die Zellen im Sheet markiert bleiben.
Kann man
MyData.SetText ActiveCell.Text
nicht ändern so dass die Nachbarzellen kopiert werden?
AW: Zellen per Doppelklick in die Zwischenablage
03.02.2017 16:14:58
Inshin
MyData.SetText ActiveCell.Range(Cells(ActiveCell.Row, 0), ActiveCell.Offset(1, 2)).Text
MyData.PutInClipboard
geht leider auch nicht ;-(
Anzeige
AW: Zellen per Doppelklick in die Zwischenablage
04.02.2017 12:32:32
Inshin
Moin,
noch jemand eine Idee wie ich MyData.SetText ActiveCell.Text auf 3 Zellen erweitern kann?
AW: Zellen per Doppelklick in die Zwischenablage
04.02.2017 13:43:35
ransi
Hallo,
Du musst die 3 Zellen einfach nur verketten.
Option Explicit



Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim strText As String
    Dim myData As New DataObject
    Cancel = True
    With Target
        strText = .Text & "-" & .Offset(0, 1).Text & "-" & .Offset(0, 2).Text
    End With
    With myData
        .SetText strText
        .PutInClipboard
    End With
End Sub


ransi
Anzeige
AW: Zellen per Doppelklick in die Zwischenablage
05.02.2017 16:58:46
Inshin
hey ransi,
das geht...aber ich habe einen Denkfehler gemacht.
Ich beschreibe einmal was ich genau vorhabe.
Eine Worddatei ist geöffnet. Hier gibt es eine Tabelle.
Eine Exceldatei ist geöffnet. Hier gibt es Texbausteine in verschiedenen Spalten (2-4)
Anwender macht in der Exceldatei einen Doppelklick auf irgendeine Zelle, diese wird dann an der aktiven Stelle des Worddokumentes eingefügt. Soweit bekomme ich das hin.
Ich möchte aber nun, das die 2 Nachbarzellen aus Excelsheet in die Nachbarzellen des Worddokumentes kopiert werden. Es sollen also immer 3 Zellen übergeben werden und in die Tabelle des Worddokumentes eingefügt werden.
Was geht zur Zeit (z.B. Doppelklick auf A2)
Excel: doppelklick auf Zelle kopiert diese nach Word in die Tabelle, aktuelle Reihe, aktuelle Zelle
Was brauche ich (z.B. Doppelklick auf A2)
Excel: doppelklick auf Zelle kopiert A2/B2/D3 nach Word in die Tabelle aktuelle Reihe
Excelzelle A2 wird nach Word aktuelle Reihe, aktuelle Zelle kopiert (Spalte2)
Excelzelle B3 wird nach Word aktuelle Reihe, eine Zelle neben aktueller Zelle kopiert (Spalte3)
Excelzelle D3 wird nach Word aktuelle Reihe, Zwei Zellen neben aktueller Zelle kopiert (Spalte4)
daran beiss ich mir seit Tagen die Zähne aus....
thx für Hilfe
Tom
Anzeige
AW: Zellen per Doppelklick in die Zwischenablage
09.02.2017 00:36:46
Inshin
Moin....jemand noch eine Idee oder Lösung dazu?
AW: Zellen per Doppelklick in die Zwischenablage
10.02.2017 20:04:50
Mullit
Hallo,
..klar, da geht schon was, aber Deine Angaben sind etwas Kraut und Rüben, sollen jetzt nur die Nachbarzellen mitkopiert werden oder doch noch andere Zellen...?
Was brauche ich (z.B. Doppelklick auf A2)
Excel: doppelklick auf Zelle kopiert A2/B2/D3 nach Word in die Tabelle aktuelle Reihe
Excelzelle A2 wird nach Word aktuelle Reihe, aktuelle Zelle kopiert (Spalte2)
Excelzelle B3 wird nach Word aktuelle Reihe, eine Zelle neben aktueller Zelle kopiert (Spalte3)
Excelzelle D3 wird nach Word aktuelle Reihe, Zwei Zellen neben aktueller Zelle kopiert (Spalte4)

Gruß, Mullit
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zellen per Doppelklick in die Zwischenablage kopieren


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und gehe zu dem Arbeitsblatt, in dem du die Funktion implementieren möchtest.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Wähle im Projektfenster das gewünschte Arbeitsblatt aus und klicke darauf.

  4. Füge den folgenden Code in das Codefenster ein:

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
       Cancel = True
       Target.Resize(1, 3).Copy
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Klicke doppelt auf eine Zelle, um die Zelle und die zwei Nachbarzellen rechts zu kopieren.


Häufige Fehler und Lösungen

  • Fehler: "Der Code funktioniert nicht wie erwartet."

    • Lösung: Stelle sicher, dass der Code im richtigen Arbeitsblattmodul eingefügt wurde und dass keine anderen Makros den Doppelklick stören.
  • Fehler: Nur die aktive Zelle wird kopiert.

    • Lösung: Verwende den Resize-Befehl wie im obigen Beispiel, um die richtigen Zellen auszuwählen.

Alternative Methoden

Eine alternative Methode zur Auswahl und zum Kopieren von Zellen könnte die Verwendung von MyData.SetText sein, um den Text mehrerer Zellen zu verketten:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim strText As String
    Dim myData As New DataObject
    Cancel = True
    With Target
        strText = .Text & "-" & .Offset(0, 1).Text & "-" & .Offset(0, 2).Text
    End With
    With myData
        .SetText strText
        .PutInClipboard
    End With
End Sub

Praktische Beispiele

Wenn du beispielsweise in Zelle A2 einen Doppelklick machst, kannst du die Werte von A2, B2 und C2 an die Zwischenablage senden. Wenn du dann in ein anderes Dokument klickst, kannst du die Werte direkt einfügen.

Um die Werte an spezifische Zellen in einem Word-Dokument zu übergeben, musst du den Code entsprechend anpassen, um die Struktur deines Word-Dokuments zu berücksichtigen.


Tipps für Profis

  • Verwende Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen in deinem VBA-Code, um mögliche Laufzeitfehler abzufangen.

  • Mehrere Zellen kopieren: Du kannst die Resize-Methode nutzen, um mehr als drei Zellen auszuwählen, indem du die Parameter entsprechend anpasst.

  • Automatisierung: Überlege, wie du die Datenübertragung zwischen Excel und Word weiter automatisieren kannst, um den Workflow zu optimieren.


FAQ: Häufige Fragen

1. Frage
Wie kann ich den Code anpassen, um mehr Zellen zu kopieren?
Antwort: Du kannst die Parameter in Resize(1, 3) anpassen, um die Anzahl der zu kopierenden Zellen zu ändern. Zum Beispiel Resize(1, 5) für fünf Zellen.

2. Frage
Funktioniert dieser Code in Excel 2016?
Antwort: Ja, der Code sollte in Excel 2016 und neueren Versionen einwandfrei funktionieren.

3. Frage
Kann ich die Kopierfunktion für Zeilen anpassen?
Antwort: Ja, du kannst die Offset-Methode verwenden, um Zeilen und Spalten nach Bedarf auszuwählen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige