ich versuche derzeit ein Template zusammenzustellen.
Dabei habe ich dynamische Bezeichnungen für die einzelnen Tabellenblätter.
Der VBA Code kann derzeit über eine Variable (i) erkennen, auf welches Tabellenblatt zugegriffen werden soll.
Nun habe ich 5 Tabellenblätter und habe eine For-Anweisung eingefügt, mit dem Ziel, dass der Code die Daten und Formeln in das erste Blatt einfügt und dann automatisch das selbe im 2,3... usw. macht.
Dazu verwende ich folgenden Code:
Dim ws As Worksheet
Dim wsName As String
Dim i As Integer, first As Integer
Dim maxRow As Integer
Dim maxTickerWS As Worksheet
Dim tickerName As Variant
Dim LastRow As Integer
Dim j As Integer
Dim m As Integer
Dim n As Integer
' i = first row with stock ticker
i = 12
'Last row which contains the stock tickers in Sheets "Parameters" Range A12:A(n)
LastRow = Sheets("Parameters").Cells(Rows.Count, "A").End(xlUp).Row
MsgBox (LastRow)
j = LastRow - i
'MsgBox (j) = 5
For i = 12 To LastRow
' set name of first stock ticker sheet
wsName = Replace(Sheets("Parameters").Range("A" & i), "^", "")
'MsgBox (wsName)
'Last row in the target sheets which contains data
maxRow = Sheets(wsName).Cells(Rows.Count, "A").End(xlUp).Row
'MsgBox (maxRow)
' m = counter to define where the calculations shall start in the sheets wsName
m = 14
wsName = Replace(Sheets("Parameters").Range("A" & i), "^", "")
'MsgBox (wsName)
' 12 Day EMA
Sheets(wsName).Cells(2, 8) = "12 Day EMA"
Sheets(wsName).Cells(m, 8).Formula = "=AVERAGE(E3:E14)"
Sheets(wsName).Range(Cells(m + 1, 8), Cells(maxRow, 8)).Formula = "=E15*(2/(12+1))+H14*(1-(2/(12+1)))"
' 26 Day EMA
Sheets(wsName).Cells(2, 9) = "26 Day EMA"
Sheets(wsName).Cells(m + 14, 9).Formula = "=AVERAGE(E3:E28)"
Sheets(wsName).Range(Cells(m + 15, 9), Cells(maxRow, 9)).Formula = "=E29*(2/(26+1)) + I28*(1-(2/(26+1)))"
i = i+ 1
next i
Nun erhalte ich beim Durchlauf jedes Mal einen Debug-Fehler (Run-Time Error 1004), sobald folgende Zeilen (auf dem zweiten Ziel-Tabellenblatt) durchlaufen werden:
Sheets(wsName).Range(Cells(m + 1, 8), Cells(maxRow, 8)).Formula = "=E15*(2/(12+1))+H14*(1-(2/(12+1)))"
Sheets(wsName).Range(Cells(m + 15, 9), Cells(maxRow, 9)).Formula = "=E29*(2/(26+1)) + I28*(1-(2/(26+1)))"
Diese Formeln werden ohne Probleme im ersten Blatt eingefügt, ab dem zweiten wie bereits geschrieben kommt die Fehlermeldung.
Was mache ich falsch bzw. wo muss ich ansetzten, dass der obige Code durch alle Tabellenblätter, welche im Blatt Parameter stehen ohne Fehler durchlaufen wird?
Besten Dank für Eure Hilfe schon mal im Voraus.
Schönen Samstag Abend und Grüsse
Dan