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

Forumthread: VBA Copy nur Werte und Formate

VBA Copy nur Werte und Formate
03.02.2013 01:38:07
Uwe
Hallo,
ich habe in meinem Makro folgendn Kopierbefehl:
With wksName
.Range(.Cells(cZeile_1, cSpalte_Copy), .Cells(cZeile_L, cSpalte_Copy)).Copy _
Destination:=wksGesamt.Cells(cZeileName + 1, lngSpalte)
Application.CutCopyMode = False
Dieser Befehl kopiert aber die komplette Zelle, einschl. Rechenoperationen, welche in der anderen Arbeitsmappe aber nicht funktionieren.
Der copy-Befehl soll nur die Werte samt Formate kopieren.
Was muss ich ändern?
Vielen Dank für eure Hilfe
Uwe

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Copy & PasteSpecial (nachlesen)! Morrn! owT
03.02.2013 01:50:34
Luc:-?
:-?

AW: Copy & PasteSpecial (nachlesen)! Morrn! owT
03.02.2013 05:05:12
Uwe
Hallo Luc
Habe den Befehl PasteSpezial hinzugefügt, jetzt kommt aber die Fehlermeldung "Bekanntes Argument nicht gefunden"
'Daten kopieren
With wksName
.Range(.Cells(cZeile_1, cSpalte_Copy), .Cells(cZeile_L, cSpalte_Copy)).Copy _
Destination:=wksGesamt.Cells(cZeileName + 1, lngSpalte)
.PasteSpecial Paste:=xlPasteValues
Wie lautet denn der richtige Befehl?
Danke für Deine Hilfe
mit freundlichen Grüßen
Uwe

Anzeige
AW: Copy & PasteSpecial (nachlesen)! Morrn! owT
03.02.2013 06:53:51
hary
Moin Uwe
Copy und Pastspecial gehoeren in eine eigene Codezeile.
With wksName
.Range(.Cells(cZeile_1, cSpalte_Copy), .Cells(cZeile_L, cSpalte_Copy)).Copy
wksGesamt.Cells(cZeileName + 1, lngSpalte).PasteSpecial Paste:=xlPasteValues
End With

gruss hary
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Werte und Formate mit VBA kopieren


Schritt-für-Schritt-Anleitung

Um in VBA nur Werte und Formate zu kopieren, kannst du die folgenden Schritte befolgen:

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

  2. Füge ein neues Modul hinzu.

  3. Verwende den folgenden VBA-Code:

    With wksName
       .Range(.Cells(cZeile_1, cSpalte_Copy), .Cells(cZeile_L, cSpalte_Copy)).Copy
       wksGesamt.Cells(cZeileName + 1, lngSpalte).PasteSpecial Paste:=xlPasteValues
       wksGesamt.Cells(cZeileName + 1, lngSpalte).PasteSpecial Paste:=xlPasteFormats
    End With
  4. Stelle sicher, dass du die richtigen Variablen wie cZeile_1, cZeile_L, cSpalte_Copy, cZeileName und lngSpalte definiert hast.

Dieser Code kopiert nur die Werte und Formate in das Zielblatt.


Häufige Fehler und Lösungen

  1. Fehlermeldung "Bekanntes Argument nicht gefunden":

    • Stelle sicher, dass PasteSpecial in einer eigenen Codezeile steht, wie im oben genannten Beispiel.
  2. Kopieren der Formeln anstelle der Werte:

    • Nutze xlPasteValues in der PasteSpecial-Methode, um nur die Werte zu kopieren.

Alternative Methoden

Wenn du eine andere Methode bevorzugst, kannst du die Value-Eigenschaft verwenden, um Werte direkt zu kopieren:

wksGesamt.Cells(cZeileName + 1, lngSpalte).Value = wksName.Range(.Cells(cZeile_1, cSpalte_Copy), .Cells(cZeile_L, cSpalte_Copy)).Value

Um die Formate zu kopieren, könntest du zusätzlich wksGesamt.Cells(cZeileName + 1, lngSpalte).Interior.Color = wksName.Cells(cZeile_1, cSpalte_Copy).Interior.Color verwenden, um die Hintergrundfarbe zu kopieren.


Praktische Beispiele

Hier ist ein Beispiel, das die Verwendung der vba pastespecial werte und formate zeigt:

Sub CopyValuesAndFormats()
    Dim wksName As Worksheet
    Dim wksGesamt As Worksheet
    Dim cZeile_1 As Long, cZeile_L As Long
    Dim cSpalte_Copy As Long, cZeileName As Long, lngSpalte As Long

    Set wksName = ThisWorkbook.Sheets("Quellblatt")
    Set wksGesamt = ThisWorkbook.Sheets("Zielblatt")

    cZeile_1 = 1
    cZeile_L = 10
    cSpalte_Copy = 1
    cZeileName = 1
    lngSpalte = 2

    With wksName
        .Range(.Cells(cZeile_1, cSpalte_Copy), .Cells(cZeile_L, cSpalte_Copy)).Copy
        wksGesamt.Cells(cZeileName + 1, lngSpalte).PasteSpecial Paste:=xlPasteValues
        wksGesamt.Cells(cZeileName + 1, lngSpalte).PasteSpecial Paste:=xlPasteFormats
    End With
End Sub

Dieses Beispiel zeigt, wie du die Werte und Formate von einem Quellblatt in ein Zielblatt kopierst.


Tipps für Profis

  • Verwende Application.CutCopyMode = False, um den Kopiermodus zu beenden und das Blinken der Auswahl zu stoppen.
  • Du kannst die Cells.Copy-Methode verwenden, um eine gesamte Zelle zu kopieren, jedoch nur, wenn du weißt, dass die Zieldaten keine Formeln enthalten.

FAQ: Häufige Fragen

1. Wie kann ich nur die Formate ohne die Werte kopieren? Um nur die Formate zu kopieren, kannst du Paste:=xlPasteFormats verwenden.

2. Welche Excel-Version benötige ich für diese VBA-Methoden? Diese VBA-Methoden sind in Excel 2010 und neueren Versionen verfügbar.

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