online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon VBALehrling vom 14.10.2021, 17:46 Options

vba kopieren ohne Formel

Hallo ihr Helfenden!

Ich habe eine Excel-Tabelle mit mehreren Arbeitsblättern. In einem Arbeitsblatt gibt es einen Range(A10:O19) dessen Zellinhalt per Makro in ein anderes Tabellenblatt an der nächsten freien Zeile (quasi nach dem letzten Eintrag) kopiert werden soll, allerdings sind in einigen Zellen Formeln enthalten. Diese Formeln werden leider statt der Zellinhalte kopiert.
Bin leider ein Ahnungsloser unter den Ahnungslosen. Deswegen eine Bitte: könnt ihr mir mein Makro so hinbiegen, dass die Werte kopiert werden ?
Hier mein Makro:

Private Sub CommandButton1_Click()
Dim lRow As Long
With Worksheets("Wareneingang")
lRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
Range("A10:O19").Copy .Cells(lRow, 1)
End With
Application.CutCopyMode = False

Dim strText As String
strText = " Daten kopiert"
MsgBox strText
End Sub



Vielen Dank im Voraus


Antwort schreiben

Antwort 1 von Hajo_Zi vom 14.10.2021, 18:22 Options

hier ein allgemeiner Ansatz
Sub Werte()
' Formeln ersetzen durch Werte ohne Formate
Columns("B:C").Copy
Columns("B:C").PasteSpecial Paste:=xlValues
Application.CutCopyMode = False 'Zwischenspeicher löschen
End Sub

Antwort 2 von VBALehrling vom 14.10.2021, 19:21 Options

Hallo Hajo,

danke für die gute Idee.
Nur sollen die Formeln nicht gelöscht werden, da ich diese weiterhin benötige !
Der Bereich der kopiert werden soll, soll in das andere Arbeitsblatt als Wert übertragen werden und dann gibt es da noch ein Makro, der alle Einträge auf dem Ursprungarbeitsblatt löscht. Denn dieses Arbeitsblatt dient nur als "Eingabemaske" .

Antwort 3 von coros vom 14.10.2021, 19:34 Options

Hallo,

hast Du den Vorschlag von HaJo 1:1 angewandt? Denn der kopiert die Daten aus dem Bereich B:C und fügt Dir nur die Werte wieder in den Bereich B:C ein. Du musst natürlich den Bereich, in dem das eingefügt werden soll, ändern. Daher hat HaJo ja auch geschrieben

Zitat:
hier ein allgemeiner Ansatz


Mal Dein Code angepasst, sieht das wie folgt aus:

Private Sub CommandButton1_Click()
Dim lRow As Long
With Worksheets("Wareneingang")
    lRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
    Range("A10:O19").Copy
    .Cells(lRow, 1).PasteSpecial Paste:=xlValues
End With
Application.CutCopyMode = False

Dim strText As String
strText = " Daten kopiert"
MsgBox strText
End Sub
Hier wird der Bereich A10:O19 des aktiven Tabellenblatts kopiert und in Tabellenblatt "Wareneingang" in die erste freie Zelle in Spalte A eingefügt.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 4 von VBALehrling vom 14.10.2021, 20:14 Options

Hallo Oliver,

habe den Bereich geändert. Nur nach dem Ausführen waren die Formeln verloren.

Durch deine "Anpassung" klappt das wunderbar.

Recht herzlichen Dank dafür !!!

Ähnliche Themen

Formel per VBA in Zelle schreiben
Kauz  17.04.2008 - 81 Hits - 2 Antworten

VBA Formel
MarcR  08.08.2008 - 46 Hits - 2 Antworten

Formel Kopieren
nero00022  11.03.2009 - 225 Hits - 2 Antworten

Formel in VBA
wmei  19.03.2009 - 197 Hits - 2 Antworten

Formel per Formel kopieren
Kalmi1  27.05.2009 - 230 Hits - 2 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026