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

PasteSpecial xlPasteValues

Forumthread: PasteSpecial xlPasteValues

PasteSpecial xlPasteValues
01.11.2006 11:06:16
Christian
Hallo,
ich möchte Daten die ich in einer anderen Tabelle via Autofilter selektiert habe kopieren und dann via "Inhalte einfügen/Werte" in ein anderes Tabellenblatt einfügen.
Laut meiner VBA-Bibel ist das die Funktion PasteSpecial xlPasteValues, leider funktioniert das bei mir aber trotz mehrmaligen Versuchen nicht. Anbei mal der Quellcode, vielleicht erkennt jemand von euch den Fehler auf Anhieb:

Private Sub Beratung_Click()
Sheets("Januar A.R.").Rows("1:1").Autofilter _
Field:=3, Criteria1:="Beratung", _
Field:=21, Criteria1:="Firma ABC"
Rows("2:55").Copy
Worksheets("Übersicht").Range("A7").PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub

Wäre froh wenn mir jemand weiterhelfen kann, gruss
Christian
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: PasteSpecial xlPasteValues
01.11.2006 12:24:02
Daniel
Hallo
bist du sicher das der Fehler beim PasteSpecial liegt?
Da kann ich aber keinen Fehler erkennen.
In welcher Zeile bricht das Makro denn ab?
so spontan fallen mir 2 Feheler auf:
- in der Zeile "Rows().copy" ist kein Sheet angegeben. Damit wird immer das gerade aktive Sheet kopiert.
beim Setzen des Autofilter hast du dagegen das Sheet angegeben, also ist davon auszugehen, das es nicht das gerade aktive ist und somit kopiertst du die Daten vermutlich aus einem falschen Sheet (das muß nicht so sein, aber die Gefahr besteht)
- gib beim Setzten des Autofilters nicht einen ganzen Zellbereich an, sondern nur eine einzelne Zelle, die innerhalb der zu filternden Tabelle liegt. Excel findet die passende Tabelle dann automatisch. Wenn du einen vollständigen Zellbereich vorgibst, kann es zu problemen kommen, da Excel dann versucht, den Autofilter nur auf diesen Zellbereich anzuwenden und das hat bei mir zumindest zu einem Programmabbruch geführt.
Mit "Sheets().Cells(1,1).Autofilter..." gings einwandfrei
Gruß, Daniel
Anzeige
AW: PasteSpecial xlPasteValues
01.11.2006 16:19:47
Christian
Hallo Daniel,
danke für den Tipp, habe den Code nun folgendermassen geändert:

Private Sub Beratung_Click()
Sheets("Januar A.R.").Range("1:1").Autofilter _
Field:=3, Criteria1:="Beratung", _
Field:=21, Criteria1:="Rhenus AG & Co. KG"
Worksheets("Januar A.R.").Rows("2:55").Copy
Worksheets("Übersicht").Range("A7").PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub

Problem: Exel selektiert und kopiert mir die Daten zwar aber fügt sie nicht ins Worksheet "Übersicht".
gruss
Anzeige
AW: PasteSpecial xlPasteValues
01.11.2006 23:07:40
Daniel
Hallo,
du hast meinen 2. Punkt nicht beachtet, du solltest beim Einrichten des Autofilters nur eine einzelne Zelle selectiern und nicht die Ganze Zeile.
Das ist der Punkt, der bei mir die Probleme verursacht.
also "...Cells(1,1).Autofilter..."
mit Range("1:1") hast du wieder die ganze Zeile selektiert.
Im Cut/Copy - Bereich ist meiner Ansicht nach kein Fehler.
Vorausgesetzt, deine Datentabelle reicht nicht weiter als bis zur Zeile 55.
Wenn nach Zeile 55 noch Daten stehen, werden diese natürlich nicht kopiert.
Gruß, Daniel
Anzeige
AW: PasteSpecial xlPasteValues
02.11.2006 09:06:48
Christian
Hoi Daniel,
danke hat sich erledigt...es klappt.
Danke und gruss,
christian
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

PasteSpecial mit xlPasteValues in Excel VBA


Schritt-für-Schritt-Anleitung

Um Daten in Excel mit PasteSpecial xlPasteValues einzufügen, kannst du das folgende VBA-Skript verwenden. Achte darauf, dass du die richtige Zeile und das richtige Blatt angibst:

Private Sub Beratung_Click()
    Sheets("Januar A.R.").Range("A1").Autofilter _
        Field:=3, Criteria1:="Beratung", _
        Field:=21, Criteria1:="Firma ABC"

    Sheets("Januar A.R.").Rows("2:55").Copy
    Worksheets("Übersicht").Range("A7").PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
End Sub

In diesem Beispiel wird der Autofilter auf die Daten angewendet, die dann kopiert und in das "Übersicht"-Blatt eingefügt werden. Achte darauf, dass xlPasteValues korrekt definiert ist.


Häufige Fehler und Lösungen

  1. Kein Sheet angegeben: Wenn du Rows().Copy verwendest, ohne das Sheet zu spezifizieren, wird immer das aktive Sheet kopiert. Stelle sicher, dass du das richtige Sheet angibst.

  2. Falsche Zellangabe beim Autofilter: Verwende für den Autofilter nur eine einzelne Zelle, z.B. Cells(1, 1).Autofilter, anstatt die gesamte Zeile. Dies kann zu Problemen führen.

  3. Daten werden nicht eingefügt: Wenn die Daten zwar kopiert, aber nicht eingefügt werden, überprüfe, ob die Zielzelle in einem anderen Worksheet korrekt angegeben ist und dass die Daten im Quellbereich vorhanden sind.


Alternative Methoden

Du kannst auch andere Methoden verwenden, um Werte einzufügen, z.B. Selection.PasteSpecial:

Selection.PasteSpecial Paste:=xlPasteValues

Dies kann nützlich sein, wenn du eine Auswahl von Zellen hast, die du einfügen möchtest.


Praktische Beispiele

Ein weiteres Beispiel zeigt, wie du mit Cells.PasteSpecial arbeiten kannst:

Worksheets("Übersicht").Cells(7, 1).PasteSpecial Paste:=xlPasteValues

Hier wird der Wert direkt in die Zelle A7 des "Übersicht"-Blattes eingefügt. Diese Methode ist besonders nützlich, wenn du das Ziel dynamisch bestimmen möchtest.


Tipps für Profis

  • Verwende Application.ScreenUpdating = False: Wenn du ein großes Makro ausführst, kann es helfen, die Bildschirmaktualisierung auszuschalten, um die Ausführungsgeschwindigkeit zu erhöhen.

  • Fehlerbehandlung einfügen: Verwende On Error Resume Next, um sicherzustellen, dass dein Makro auch bei Fehlern weiterläuft.

  • Entwickle in einer Testumgebung: Teste deinen Code zuerst in einer Kopie deiner Datei, um Datenverlust zu vermeiden.


FAQ: Häufige Fragen

1. Was ist xlPasteValues?
xlPasteValues ist eine Excel-Konstante, die verwendet wird, um nur die Werte ohne Formatierungen einzufügen.

2. Wie kann ich sicherstellen, dass mein VBA-Code funktioniert?
Achte darauf, dass alle angegebenen Blätter und Zellreferenzen korrekt sind und dass keine Zeilen oder Spalten leer sind, die du kopieren möchtest.

3. Warum funktioniert PasteSpecial manchmal nicht?
Das kann an einer falschen Referenz oder daran liegen, dass der Clipboard-Inhalt nicht mehr verfügbar ist. Stelle sicher, dass du den Kopiervorgang korrekt abgeschlossen hast.

4. Kann ich PasteSpecial auch in anderen Excel-Versionen verwenden?
Ja, PasteSpecial ist in den meisten Excel-Versionen verfügbar, solange du VBA verwenden kannst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige