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

Forumthread: Nur Werte kopieren keine Formel VBA

Nur Werte kopieren keine Formel VBA
andreas
Hallo zusammen,
habe hier einen Code bei dem wird zuerst sortiert und anschliessend kopiert, dabei werden auch die Formeln mit kopiert.
Ich möchte aber nur die Werte in die andere Tabelle kopieren.
Was muss ich an diesem Code ändern damit es funktioniert?
Private Sub CommandButton5_Click()      'sortieren nach Datum und kopieren
ActiveSheet.Unprotect ("")
With Sheets("Kapazitätsübersicht KV")
.Rows("26:500").Sort Key1:=Range("N26"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
.Range("B26:W500").Copy Sheets("Kapazitätsübersicht KV BER").Range("B26")
End With
ActiveSheet.Protect ("")
End Sub
Danke für die Hilfe im Voraus
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Hinten ...
01.10.2010 10:05:52
Holger
Hallo,
noch ein xlpastevalues setzen (also nach dem COPY)
AW: Nur Werte kopieren keine Formel VBA
01.10.2010 10:08:26
JogyB
Hallo Andreas,
.Range("B26:W500").Copy
Sheets("Kapazitätsübersicht KV BER").Range("B26").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Gruß, Jogy
AW: Nur Werte kopieren keine Formel VBA
01.10.2010 10:42:15
Klaus
Hallo du einer,
Jogy's Methode ist genau richtig, nur der Vollständigkeit halber eine 1-Zeilen Lösung:
Sheets("Kapazitätsübersicht KV BER").Range("B26:W500").value = .Range("B26:W500").value
(Beide Lösungen kopieren allerdings NUR die Werte, Zahlenformate und Zellformatierungen werden nicht übertragen).
Grüße,
Klaus M.vdT.
Anzeige
AW: Nur Werte kopieren keine Formel VBA
01.10.2010 11:24:32
JogyB
Hallo zusammen,
hier noch kurz der Hinweis, dass die Methode von Klaus bei wenigen Zellen schneller ist als die von mir.
Der break even ist bei ca. 5000-5500 Zellen, hier wäre also Copy & Paste schneller.
Gruß, Jogy
AW: Nur Werte kopieren keine Formel VBA
01.10.2010 11:08:49
Peter
Hallo Andreas,
bin zwar auch kein Profi aber an der Stelle wo du die Daten einfügen möchtest, füge folgenden Code ein:
Range("b26").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
(Es ist das Beispiel, wenn die Werte in den Bereich ab B26 kopiert werden sollen. )
Viel Erfolg,
Peter
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Nur Werte kopieren ohne Formeln in Excel VBA


Schritt-für-Schritt-Anleitung

Um in Excel VBA nur die Werte zu kopieren und keine Formeln, kannst du den folgenden Code verwenden. Dieser Code sortiert zuerst die Daten und kopiert dann nur die berechneten Werte in eine andere Tabelle.

Private Sub CommandButton5_Click() ' Sortieren nach Datum und kopieren
    ActiveSheet.Unprotect ("")
    With Sheets("Kapazitätsübersicht KV")
        .Rows("26:500").Sort Key1:=Range("N26"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
        .Range("B26:W500").Copy 
        Sheets("Kapazitätsübersicht KV BER").Range("B26").PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False
    End With
    ActiveSheet.Protect ("")
End Sub

In diesem Beispiel wird die Methode PasteSpecial verwendet, um sicherzustellen, dass nur die Werte und nicht die Formeln in die Zielzellen kopiert werden.


Häufige Fehler und Lösungen

  1. Fehler: Formeln werden weiterhin kopiert

    • Lösung: Stelle sicher, dass du .PasteSpecial Paste:=xlPasteValues nach dem .Copy Befehl verwendest. Dies stellt sicher, dass nur die Werte kopiert werden.
  2. Fehler: Auswahl funktioniert nicht

    • Lösung: Vermeide die Verwendung von .Select und Selection. Stattdessen kannst du direkt auf die Zielzelle zugreifen.
  3. Fehler: Daten werden nicht korrekt eingefügt

    • Lösung: Überprüfe den Zielbereich. Stelle sicher, dass der Bereich, in den du die Werte kopierst, nicht bereits Daten enthält, die überschrieben werden könnten.

Alternative Methoden

  • Direkte Zuweisung: Wenn du nur eine einfache Zuweisung durchführen möchtest, kannst du auch diese Zeile verwenden:
Sheets("Kapazitätsübersicht KV BER").Range("B26:W500").Value = Sheets("Kapazitätsübersicht KV").Range("B26:W500").Value

Diese Methode ist besonders hilfreich, wenn du sicherstellen möchtest, dass die Formatierungen nicht kopiert werden.

  • Verwenden von Value: Anstatt zu kopieren, kannst du auch die Werte direkt zuweisen, was in vielen Fällen schneller ist.

Praktische Beispiele

Hier sind einige Beispiele, wie du nur Werte kopieren kannst:

  1. Kopieren von einem Bereich in derselben Arbeitsmappe:
Range("A1:A10").Copy
Range("B1:B10").PasteSpecial Paste:=xlPasteValues
  1. Kopieren von Daten zwischen verschiedenen Arbeitsmappen:
Workbooks("Mappe1.xlsx").Sheets("Tabelle1").Range("A1:A10").Copy
Workbooks("Mappe2.xlsx").Sheets("Tabelle1").Range("A1:A10").PasteSpecial Paste:=xlPasteValues

Tipps für Profis

  • Vermeide unnötige Kopiervorgänge: Wenn du nur Werte kopieren möchtest, nutze direkte Zuweisungen, um die Performance zu verbessern.
  • Nutze Variablen für Bereiche: Statt wiederholt den gleichen Bereich zu referenzieren, speichere ihn in einer Variablen, um den Code lesbarer und effizienter zu gestalten.
Dim sourceRange As Range
Set sourceRange = Sheets("Kapazitätsübersicht KV").Range("B26:W500")
Sheets("Kapazitätsübersicht KV BER").Range("B26:W500").Value = sourceRange.Value

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass nur die Werte und nicht die Formeln kopiert werden? Um sicherzustellen, dass nur die Werte kopiert werden, verwende die Methode PasteSpecial mit dem Argument xlPasteValues.

2. Funktioniert dieser Code in allen Excel-Versionen? Ja, der Code sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen.

3. Was passiert mit Zellformatierungen, wenn ich nur Werte kopiere? Wenn du nur die Werte kopierst, werden die Zellformatierungen nicht übernommen. Wenn du diese ebenfalls übertragen möchtest, musst du dies separat tun.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige