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

Forumthread: VBA: copy Befehl

VBA: copy Befehl
20.12.2005 02:42:23
Atti
Hallo Excelfreunde :)
Kann man mit folgendem Befehl auch nur "Werte" kopieren?
-----------------------------------------------------------------------------------
Sheets("Table1").copy After:=Workbooks("Ziel.xls").Sheets(1)
-----------------------------------------------------------------------------------
Wenn es nicht möglich ist, kann mir vielleicht jemand sagen, wie man die Werte sonst kopieren kann, ohne dass Fenster zu wechseln?
Falls nähere Informationen bezüglich des kompletten Programms notwendig sind, kann ich auch weiter beschreiben, aber ich glaub, dass es erst mal reicht.
Schon mal vielen Dank
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA: copy Befehl
20.12.2005 07:56:59
OttoH
HAllo Atti,
mit den o.g. Copy-Befehl kann man nur ganze Worksheets von der einen Mappe in die andere kopieren.
Um wert zu kopieren benutze folgende Syntax: Sheets("Ziel").[A1]=sheets("Start").[B1]
Hiermit wird B1 aus Start nach A1 in Ziel kopiert.
Gruß OttoH
AW: VBA: copy Befehl
20.12.2005 08:39:24
Atti
Danke OttoH.
Kann ich den Befehl
-------------------------------------------------------
Sheets("Ziel").[A1]=sheets("Start").[B1]
-------------------------------------------------------
so umstricken, dass "alle" Werte aus der Datei quelle.xls nach ziel.xls kopiert werden?
Anzeige
AW: VBA: copy Befehl
20.12.2005 10:44:47
Heiko
Hallo Atti,
z.B. so:
' Datei Mappe3 und Tabellen Start und Ziel anpassen
Workbooks("Mappe3").Sheets("Start").UsedRange.Copy Workbooks("Mappe3").Sheets("Ziel").Range("A1")
Gruß Heiko
PS: Rückmeldung wäre nett !
AW: VBA: copy Befehl
21.12.2005 01:45:49
Atti
---------------------------------------------------------------------------------------------------------------------------------------------
Workbooks("Quelle.xls").Sheets("Table1").UsedRange.copy Workbooks("Ziel.xls").Sheets("Sheet1").Range("A1")
---------------------------------------------------------------------------------------------------------------------------------------------
ist zwar der richtige Quellcode, es wird kopiert aber leider auch die Formatierung.
Es ist für mich aber notwendig nur die Werte zu kopieren.
Kann man da was abändern?
So wie man es zum Beispiel beim Einfügen hier macht:
---------------------------------------------------------------------------------------------------------------------------------------------
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
---------------------------------------------------------------------------------------------------------------------------------------------
nur muss man hier ja erst das Fenster wechseln, und das möchte ich eigentlich nicht
Vielen Dank für die Hilfe
Anzeige
AW: VBA: copy Befehl
21.12.2005 01:56:25
Reinhard
Hi Atti,

Sub tt()
Sheets(1).UsedRange.Copy
Sheets(2).Range("b1").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
End Sub

Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen.
Anzeige
AW: VBA: copy Befehl
21.12.2005 04:50:33
Atti
Danke Reinhard, zum 2ten Mal.
Es klappt so wie es haben möchte.
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA: Werte kopieren ohne Formatierung in Excel


Schritt-für-Schritt-Anleitung

Um in Excel mit VBA nur die Werte aus einem Bereich zu kopieren, ohne die Formatierungen zu übernehmen, kannst du folgendes Vorgehen nutzen:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel (Alt + F11).

  2. Erstelle ein neues Modul (Rechtsklick auf "VBAProject" > Einfügen > Modul).

  3. Füge den folgenden Code in das Modul ein:

    Sub KopiereWerte()
       Workbooks("Quelle.xls").Sheets("Table1").UsedRange.Copy
       Workbooks("Ziel.xls").Sheets("Sheet1").Range("A1").PasteSpecial Paste:=xlValues
       Application.CutCopyMode = False
    End Sub
  4. Passe die Namen der Arbeitsmappen und Blätter an deine Bedürfnisse an.

  5. Führe das Makro aus (F5) und die Werte werden ohne Formatierungen in die Zieltabelle kopiert.


Häufige Fehler und Lösungen

  • Problem: Die Formatierungen werden trotzdem kopiert.

    • Lösung: Stelle sicher, dass du die Methode .PasteSpecial mit den Argumenten Paste:=xlValues verwendest, um nur die Werte zu kopieren.
  • Problem: Fehlermeldung, wenn die Arbeitsmappe nicht geöffnet ist.

    • Lösung: Stelle sicher, dass die Quelldatei ("Quelle.xls") und die Zieldatei ("Ziel.xls") geöffnet sind, bevor du das Makro ausführst.

Alternative Methoden

Wenn du keine VBA-Makros verwenden möchtest, kannst du die folgenden Schritte in Excel manuell durchführen:

  1. Wähle den Bereich, den du kopieren möchtest.
  2. Drücke Strg + C, um zu kopieren.
  3. Wechsle zur Zieltabelle und klicke auf die Zelle, in der die Werte eingefügt werden sollen.
  4. Klicke mit der rechten Maustaste und wähle "Inhalte einfügen" und dann "Werte".

Diese Methode funktioniert, ist jedoch nicht so automatisiert wie die VBA-Lösung.


Praktische Beispiele

Hier ist ein Beispiel für einen Kopierbefehl, der den gesamten benutzten Bereich einer Tabelle in ein anderes Arbeitsblatt überträgt:

Sub KopiereBenutztenBereich()
    Workbooks("Mappe3").Sheets("Start").UsedRange.Copy _
    Workbooks("Mappe3").Sheets("Ziel").Range("A1").PasteSpecial Paste:=xlValues
    Application.CutCopyMode = False
End Sub

Diese Methode verwendet UsedRange, um alle aktiven Zellen zu kopieren, und stellt sicher, dass nur die Werte eingefügt werden.


Tipps für Profis

  • Nutze die Application.CutCopyMode = False Zeile, um den Kopiermodus zu deaktivieren und die Zwischenablage zu leeren, was die Leistung verbessern kann.
  • Wenn du häufig VBA-Anweisungen für das Kopieren von Werten nutzt, erstelle eine Funktion, die diese Schritte zusammenfasst, um wiederholte Eingaben zu vermeiden.

FAQ: Häufige Fragen

1. Frage
Kann ich den Befehl auch anpassen, um nur bestimmte Zellen zu kopieren?
Antwort: Ja, du kannst den Bereich anpassen, den du kopieren möchtest. Ersetze UsedRange durch den spezifischen Zellbereich, z.B. Range("A1:B10").

2. Frage
Wie kann ich mehrere Blätter gleichzeitig kopieren?
Antwort: Du kannst eine Schleife verwenden, um durch die Blätter zu iterieren und den Kopierbefehl für jedes Blatt auszuführen.

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