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

Forumthread: Range in Zwischenablage kopieren

Range in Zwischenablage kopieren
03.02.2008 16:13:52
Silk
Hallo zusammen !
Ich hab folgendes Problem: Ich habe ein sehr grosses Arbeitsblatt aus dem ich per VBA einige wenige Informationen auf ein verstecktes Arbeitsblatt kopiere. Nun möchte ich nach Abschluss meiner Kopier- und Formatieraktion die neu erstellte Tabelle in die Zwischenablage kopieren.
Das scheint aber nur zu funktionieren, wenn dieses Tabellenblatt auch aktiv und sichtbar ist.

Private Sub CreateList_Button_Click()
Dim wsDest As Worksheet
Set wsDest = ActiveWorkbook.Worksheets("Export")
CreateTable
' Copy to clipboard
wsDest.Visible = xlSheetVisible
With wsDest.Range(wsDest.Cells(1, 1), wsDest.Cells(wsDest.Cells(wsDest.Rows.Count, 2).End( _
xlUp).Row, 11))
.Select
.Copy
End With
wsDest.Visible = xlSheetHidden
End Sub


Ist das Tabellenblatt nicht aktiv, schlägt Select fehl.
Wenn ich das Select auskommentiere, wird es anstandslos ausgeführt aber die Zwischenablage bleibt leer.
Gruß
Karsten

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Range in Zwischenablage kopieren
03.02.2008 16:31:00
Jan
Hi,
With wsDest
.Range(.Cells(1, 1), .Cells(.Cells(.Rows.Count, 2).End(xlUp).Row, 11)).Copy
End With
mfg Jan

AW: Range in Zwischenablage kopieren
03.02.2008 18:35:00
Silk
Hi,
Ok, der Code war noch nicht optimal. Aber dein Vorschlag ändert nichts an dem eigentlichen Problem.
Wenn ich In Word die Zwischenablage einfüge, passiert nichts.
Wenn ich allerdings in einen Texteditor einfüge, sind Daten enthalten....
Gruß
Karsten

Anzeige
AW: Range in Zwischenablage kopieren
03.02.2008 18:44:05
Jan
Hi,
tut mir Leid, kann das nicht nachvollziehen, auch in Word wird das Kopierte eingefügt.
mfg Jan

AW: Range in Zwischenablage kopieren
03.02.2008 20:18:38
Silk
Hast du die Quelltabelle auf einem nicht-aktiven Tabellenblatt liegen?
Werden die Formatierungen mit eingefügt?
Wie siehts aus, wenn das Tabellenblatt unsichtbar ist?
Gruß
Karsten

Anzeige
AW: Range in Zwischenablage kopieren
03.02.2008 20:48:16
Jan
Hi,
völlig egal, ob die Tabelle ausgeblendet ist oder nicht.
Wie in Word eingefügt wird, bestimmst du in Word unter Bearbeiten, Inhalte einfügen.
mfg Jan

AW: Range in Zwischenablage kopieren
04.02.2008 19:04:39
Silk
Hi Jan,
Ok, du hast Recht! Über "Inhalte einfügen" funktioniert es wirklich. Wenn man aber über "Einfügen" oder die Office Zwischenablage geht, wird der Text unformatiert eingefügt, und zwar nicht immer, sondern nur, wenn die Tabelle eine gewisse Zeilenzahl überschreitet...
Vielen Dank für deine Hilfe.
Gruß
Karsten
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Range in Zwischenablage kopieren mit Excel VBA


Schritt-für-Schritt-Anleitung

Um einen Bereich in die Zwischenablage zu kopieren, kannst du folgenden VBA-Code verwenden. Dieser Code sorgt dafür, dass der Bereich auch dann in die Zwischenablage kopiert wird, wenn das Zielblatt nicht sichtbar ist.

Private Sub CreateList_Button_Click()
    Dim wsDest As Worksheet
    Set wsDest = ActiveWorkbook.Worksheets("Export")
    CreateTable

    ' Tabelle sichtbar machen
    wsDest.Visible = xlSheetVisible

    ' Bereich in die Zwischenablage kopieren
    With wsDest
        .Range(.Cells(1, 1), .Cells(.Rows.Count, 2).End(xlUp).Offset(0, 10)).Copy
    End With

    ' Tabelle wieder ausblenden
    wsDest.Visible = xlSheetHidden
End Sub

In diesem Code wird das Zielblatt zunächst sichtbar gemacht, um sicherzustellen, dass der Bereich erfolgreich in die Zwischenablage kopiert wird. Danach wird das Blatt wieder ausgeblendet.


Häufige Fehler und Lösungen

  1. Fehler: Zwischenablage bleibt leer

    • Lösung: Stelle sicher, dass das Zielblatt sichtbar ist, bevor du den Bereich kopierst. Das Select-Kommando ist nicht nötig, wenn du direkt mit Copy arbeitest.
  2. Fehler: Formatierungen gehen verloren

    • Lösung: Überprüfe, wie du die Daten in das Zielprogramm (z.B. Word) einfügst. Nutze "Inhalte einfügen" anstelle von "Einfügen", um die Formatierungen beizubehalten.

Alternative Methoden

Eine andere Möglichkeit, den Bereich in die Zwischenablage zu kopieren, besteht darin, die DataObject-Klasse zu verwenden. Damit kannst du den Text direkt in die Zwischenablage schreiben, ohne das Excel-Blatt sichtbar zu machen.

Dim DataObj As New MSForms.DataObject
DataObj.SetText "Hier dein Text oder Daten"
DataObj.PutInClipboard

Diese Methode erfordert eine Referenz auf die Microsoft Forms 2.0 Object Library.


Praktische Beispiele

Nehmen wir an, du möchtest nur bestimmte Zellen aus einem versteckten Blatt kopieren:

Private Sub CopySpecificCells()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Versteckt")

    ' Kopiere nur die Zellen A1 bis B10
    ws.Range("A1:B10").Copy
End Sub

Hierbei wird der Bereich "A1:B10" in die Zwischenablage kopiert, ohne das Blatt sichtbar zu machen.


Tipps für Profis

  • Zwischenablage sichtbar machen: Wenn du die Zwischenablage sichtbar machen möchtest, kannst du dies in den Windows-Einstellungen aktivieren. Dies hilft bei der Fehlersuche, wenn du Probleme beim Kopieren hast.
  • Verwende Application.Wait: Nach dem Kopieren kannst du eine kurze Pause einfügen, bevor du die nächste Aktion ausführst. Das kann helfen, Probleme mit der Zwischenablage zu vermeiden.
Application.Wait (Now + TimeValue("0:00:01")) ' 1 Sekunde warten

FAQ: Häufige Fragen

1. Warum funktioniert das Kopieren nicht, wenn das Blatt nicht aktiv ist? Das Kopieren funktioniert oft nur, wenn das Blatt aktiv ist, da einige Excel-Funktionen eine aktive Auswahl benötigen.

2. Wie kann ich sicherstellen, dass die Formatierungen erhalten bleiben? Verwende die Funktion "Inhalte einfügen" in Word oder anderen Anwendungen, um die Formatierungen zu bewahren.

3. Gibt es eine Möglichkeit, die Zwischenablage zu leeren? Ja, du kannst die Zwischenablage in VBA leeren, indem du Application.CutCopyMode = False verwendest.

Mit diesen Schritten und Tipps bist du gut gerüstet, um mit Excel VBA effizient in die Zwischenablage zu kopieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige