7.5k Aufrufe
Gefragt in Tabellenkalkulation von
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

4 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
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
0 Punkte
Beantwortet von
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" .
0 Punkte
Beantwortet von coros Experte (4k Punkte)
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

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
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von vbalehrling Einsteiger_in (37 Punkte)
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 !!!
...