Hallo,
Excel lijkt me beter dan Access voor dit doel. Flexibiliteit is Excels troef...
Hier een voorlopige oplossing. In plaats van al die INDIRECT formulas, kan je zolang beter war code gebruiken.
Option Explicit
Sub formules_doorvoeren()
'Erik Van Geit
'telkens uit te voeren wanneer je een nieuw blad aanmaakt
'nieuw blad moet laatste blad zijn
Dim LR As Long 'Last Row
Dim NS As String 'New Sheet
Dim PS As String 'Previous Sheet
Dim c As Range
Dim area As Range
NS = Worksheets(Sheets.Count).Name
PS = Worksheets(Sheets.Count - 1).Name
With Sheets("OVERZICHT")
LR = .Cells(Rows.Count, 1).End(xlUp).Row
With .Range("A" & LR & ":O" & LR).SpecialCells(xlCellTypeFormulas)
Set c = Nothing
Set c = .Find(PS, LookIn:=xlFormulas, lookat:=xlPart, MatchCase:=False)
If c Is Nothing Then
MsgBox "Formules voor blad " & PS & " werden niet doorgevoerd", vbCritical, "FOUT"
Exit Sub
End If
Set c = Nothing
Set c = .Find(NS, LookIn:=xlFormulas, lookat:=xlPart, MatchCase:=False)
If Not c Is Nothing Then
MsgBox "Formules voor blad " & NS & " zijn reeds doorgevoerd", vbCritical, "FOUT"
Exit Sub
End If
For Each area In .Areas
area.Offset(1, 0).Formula = area.Formula
Next area
.Offset(1, 0).Replace what:=PS & "!", replacement:=NS & "!", lookat:=xlPart
End With
End With
End Sub
Dit kan volautomatisch gemaakt worden, weliswaar met nogal wat studiewerk.
Nieuw blad invoegen = nieuwe formulelijn bijmaken
Blad verwijderen = formulelijn verwijderen
Volgorde der bladen zou geen rol spelen.
De voorgestelde oplossing met beperkt aantal bladen en gebruiksvriendelijke code blijft echter veruit te verkiezen.
zonnegroet,
Erik