Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zelleninhalt kopieren

Zelleninhalt kopieren
24.10.2016 15:45:11
Defence
Hallo VBA Cracks
Versuche seit langem, den Inhalt eine Zelle per VBA zu kopieren. Gelingt mir einfach nicht. Auch mit dem Makrorekorder schaut nicht schlaues raus.
Beispiel in A1 steht Montag. Ich klicke auf diese Zelle und gehe mit F2 rein, dann markiere ich das Wort "Montag" und drücke strg+c. Somit habe ich den Zelleninhalt kopiert. Doch wie lautet der VBA Code dafür? Normales kopieren über strg.+c, führt ja dazu, dass die ganze Zelle umrandet wird und kopiert. Wenn ich aber mit F2 in eine Zelle reinklicke ist die Zwischenablage geleert. Daher meine Frage: kann man nur den Zelleninhalt per VBA kopieren? Und dann irgendwo wieder einfügen?
Danke und Gruss
Defence
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelleninhalt kopieren
24.10.2016 15:50:23
Bonduca
Hallo Defence,
so vielleicht?
Sub kopiere()
Range("A1").Value = Range("B1").Value
End Sub
Gruß,
Bon
AW: Zelleninhalt kopieren
24.10.2016 15:58:32
Defence
Hallo Bonduca
Danke für die Antwort. Aber so einfach ist es nicht ;-)
Ich möchte ja den Inhalt von A1 kopieren und irgendwo einfügen lassen mittels strg.+V. Wie gesagt muss aber der Inhalt markiert werden und nicht die Zelle. Also einfaches copy/paste wird hier nicht funktionieren :-(
Hoffe du kannst mir weiterhelfen.
Gruss
Defence
Anzeige
AW: Zelleninhalt kopieren
24.10.2016 16:50:49
EtoPHG
Hallo Defence,
Mache folgendes:
1. Füge im VBE über Einfügen - UserForm eine leere Userform in die Mappe ein.
2. Wechsle im VBE-Navigator zu DieseArbeitsmappe und füge diesen Code ein:
Option Explicit
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel  _
As Boolean)
Dim doClipBoard As New DataObject
doClipBoard.SetText Target.Text
doClipBoard.PutInClipboard
Cancel = True
MsgBox Target.Text, , "Now in clipboard"        ' Ohne Kontrolle, diese Zeile löschen
End Sub

3. Im VBE Menü - Debuggen - Kompilieren von VBAProject
4. Über Rechtsklick - UserForm1 - Entfernen von UserForm1 - Nein die Userform entfernen.
In die Arbeitsmappe wechseln.
Doppelklick in eine Zelle kopiert deren sichtbaren Inhalt ins Clipboard. Das kann dann mit Strg-v in irgendeine andere Zelle eingefügt werden, wobei diese überschrieben wird.
Gruess Hansueli
Falls du dich fragst, warum die Userform? Das ist nur ein kleiner Trick, damit das DataObject zur Verfügung steht.
Die Msgbox.... Code-Zeile am Schluss kannst du löschen, falls sie stört!

Anzeige
AW: Zelleninhalt kopieren
25.10.2016 06:57:30
Defence
Hallo Hansueli
Du hast mir gerade mehrere Tage Arbeit erspart. Genau das habe ich gesucht. Vielen herzlichen Dank. Ich hoffe ich werde dir eines Tage auch helfen können.
Gruss
Defence
AW: Zelleninhalt kopieren
25.10.2016 07:11:59
Defence
Noch eine Frage. Kann ich das auch für ein Tabellenblatt anwenden oder geht das nur für die gesamte Arbeitsmappe? Ich möchte das eigentlich nur für einzelne Tabellenblätter?
Wenn ja? Wie müsste ich den Code anpassen?
Gruss und Dank
Defence
Anzeige
AW: Zelleninhalt kopieren
25.10.2016 08:25:14
EtoPHG
Hallo Defence,
1. Code in DieseArbeitsmappe löschen
2. Tabellenblatt doppelklicken, für das die Copy-Funktion gelten soll und diesen Code einfügen
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim doClipBoard As New DataObject
doClipBoard.SetText Target.Text
doClipBoard.PutInClipboard
Cancel = True
MsgBox Target.Text, , "Now in clipboard"        ' Ohne Kontrolle, diese Zeile löschen
End Sub
Gruess Hansueli
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zelleninhalt kopieren in Excel mit VBA


Schritt-für-Schritt-Anleitung

  1. Öffne den Visual Basic Editor (VBE): Drücke ALT + F11 in Excel.

  2. Füge eine UserForm hinzu: Gehe zu Einfügen - UserForm.

  3. Füge den folgenden Code in "DieseArbeitsmappe" ein:

    Option Explicit
    Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
       Dim doClipBoard As New DataObject
       doClipBoard.SetText Target.Text
       doClipBoard.PutInClipboard
       Cancel = True
       MsgBox Target.Text, , "Now in clipboard" ' Diese Zeile kann gelöscht werden, wenn nicht benötigt
    End Sub
  4. Kompiliere das VBA-Projekt: Gehe zu Debuggen - Kompilieren von VBAProject.

  5. Entferne die UserForm: Rechtsklick auf UserForm1 und Entfernen wählen, dann Nein klicken.

  6. Teste die Funktion: Doppelklicke in eine Zelle, um den sichtbaren Inhalt in die Zwischenablage zu kopieren. Dies kann dann mit STRG + V in eine andere Zelle eingefügt werden.


Häufige Fehler und Lösungen

  • Fehler: Der Code funktioniert nicht, wenn ich die UserForm nicht einfüge.

    • Lösung: Die UserForm ist notwendig, um das DataObject zu verwenden. Halte dich an die Anleitung, um sicherzustellen, dass du die UserForm hinzufügst.
  • Fehler: Keine Rückmeldung bei Doppelklick.

    • Lösung: Stelle sicher, dass der Code korrekt in DieseArbeitsmappe eingefügt wurde und dass die Makros aktiviert sind.

Alternative Methoden

Wenn du vba zelleninhalt kopieren ohne UserForm nutzen möchtest, kannst du den Wert direkt von einer Zelle in eine andere kopieren:

Sub ZelleKopieren()
    Range("B1").Value = Range("A1").Value
End Sub

Diese Methode ist einfacher, jedoch wird der Inhalt nicht in die Zwischenablage kopiert, sondern direkt von einer Zelle zur anderen übertragen.


Praktische Beispiele

  1. Einfaches Kopieren: Um den Inhalt von A1 nach B1 zu kopieren:

    Sub EinfachesKopieren()
       Range("B1").Value = Range("A1").Value
    End Sub
  2. Zelleninhalt kopieren und einfügen: Um den Inhalt einer Zelle zu kopieren und anschließend in eine andere Zelle einzufügen, kannst du folgenden Code verwenden:

    Sub ZelleninhaltKopierenUndEinfügen()
       Dim doClipBoard As New DataObject
       doClipBoard.SetText Range("A1").Value
       doClipBoard.PutInClipboard
       Range("B1").PasteSpecial
    End Sub

Tipps für Profis

  • Verwende die Zwischenablage: Mit DataObject kannst du flexibler arbeiten. Dies ermöglicht dir, Inhalte einfach zu kopieren und an verschiedenen Stellen einzufügen.
  • Optimale Nutzung von Shortcuts: Wenn du oft vba zelleninhalt kopieren und einfügen verwendest, kannst du eigene Tastenkombinationen in Excel festlegen, um die Effizienz zu steigern.
  • Fehlerbehandlung einfügen: Überlege, Fehlerbehandlungsroutinen zu integrieren, um die Benutzererfahrung zu verbessern.

FAQ: Häufige Fragen

1. Kann ich den Code nur für ein bestimmtes Tabellenblatt verwenden?
Ja, du kannst den Code in das spezifische Tabellenblatt einfügen, indem du den Code in das entsprechende Arbeitsblatt-Modul einfügst.

2. Wie kann ich nur den Zelleninhalt kopieren, ohne die Formatierung?
Verwende Range("Ziel").Value = Range("Quelle").Value, um nur den Zelleninhalt zu kopieren, ohne die Formatierungen zu übertragen.

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