ich suche für das Ersetzen von Formeln durch den durch die Formel errechneten Wert eine Hilfestellung.
Folgendes mache ich:
Ich kopiere per VBA ein Excel-Blatt von einer Arbeitsmappe in die andere. Dabei sollen jedoch Formeln, die noch auf die ursprüngliche Arbeitsmappe verweisen durch den Wert ersetzt werden, da ich die Kopie weiterverwenden will - ohne Bezüge auf die ursprüngliche Mappe.
-----
Quellcode:
Public Sub template_kopie(sheetname As String)
Dim template As String
Dim datei As String
Dim blatt As Object
Application.ScreenUpdating = False
Workbooks.Add
datei = CStr(ActiveWorkbook.Name)
template = "t_" & sheetname
Workbooks("Teradata.xls").Worksheets(template).Activate
Set blatt = ActiveSheet
blatt.Copy before:=Workbooks(datei).Sheets(1)
Application.CutCopyMode = False
Workbooks(datei).Worksheets(template).Activate
ActiveSheet.Name = sheetname
ActiveSheet.Visible = xlSheetVisible
Application.ScreenUpdating = True
End Sub
----------------
Zwei Ansätze habe ich:
Entweder es gibt einen zusätzlichen Parameter bei der Zeile "blatt.Copy before:=Workbooks(datei).Sheets(1)", der die Formeln direkt durch die Werte ersetzt. (?)
Oder es gibt die Möglichkeit, in dem neuen Excelblatt die Zellen mit den Formeln zu erkennen (?) und dann zu ersetzen mittels:
Sub ErsetzeWert()
Dim a As Variant
a = ActiveCell.Value
ActiveCell.Value = a
End Sub
Dabei ist wichtig, das ich generell das ganze Blatt durchsuchen möchte, da ich eine Funktion für verschiedene Kopiervorlagen verwenden möchte und daher nicht weiß, an welcher Stelle Formeln stehn.
Vielen Dank schon mal im voraus!!
Schönes Wochenende
Gruß
Markus