Manuel opdatering af funktionsudregninger
Hej eksperter...Her et råb om hjælp fra en rookie udi programmeringens kunstart. Jeg har i Excel 2007/VBA lavet et regneark til brug ved udregning af antallet af timer, over et ark med samtlige timer for en given persons tilstedeværelse på arbejdspladsen.
Jeg har bygget Workbooken op således, at den indeholder et Worksheet med samtlige timer for personen og et Worksheet for hver af årets 12 måneder. For hver enkelt dag, har jeg indsat hjemmelavede funktioner, der udregner starttid hhv. sluttid. Funktionerne ser ud ála dette:
Function Starttid(Y As Integer, Z As Integer)
Application.Volatile
Dim tidspunkt As Date
Dim i As Integer
For i = 2 To 500 Step 8
If Y = Worksheets("Vagtplaner").Cells(i, "C") And Z = Worksheets("Vagtplaner").Cells(i, "E") Then
tidspunkt = Worksheets("Vagtplaner").Cells(i + 1, "B")
ElseIf Y = Worksheets("Vagtplaner").Cells(i, "G") And Z = Worksheets("Vagtplaner").Cells(i, "I") Then
tidspunkt = Worksheets("Vagtplaner").Cells(i + 1, "F")
ElseIf Y = Worksheets("Vagtplaner").Cells(i, "K") And Z = Worksheets("Vagtplaner").Cells(i, "M") Then
tidspunkt = Worksheets("Vagtplaner").Cells(i + 1, "J")
ElseIf Y = Worksheets("Vagtplaner").Cells(i, "O") And Z = Worksheets("Vagtplaner").Cells(i, "Q") Then
tidspunkt = Worksheets("Vagtplaner").Cells(i + 1, "N")
ElseIf Y = Worksheets("Vagtplaner").Cells(i, "S") And Z = Worksheets("Vagtplaner").Cells(i, "U") Then
tidspunkt = Worksheets("Vagtplaner").Cells(i + 1, "R")
End If
Next i
Starttid = tidspunkt
End Function
Mit problem er nu, at Excel som udgangspunkt ikke selv opdaterer værdierne for hver enkelt dag, selvom data for den givne dag bliver indsat i "data-arket" (a.k.a. "Vagtplaner"). Derfor indsatte jeg - efter at have søgt på nettet - linjen:
Application.Volatile
som det fremgår af ovenstående kode. Jeg fortrød dog forholdsvis hurtigt, da arbejdet med Workbooken blev utroligt omsonst, idet Excel udregner for hver lille ændring jeg laver i Workbooken. Mit spørgsmål er derfor nu:
Kan det ikke lade sig gøre, at lave en makro som opdaterer værdierne for samtlige funktioner i arket når man trykker på en knap? eller om ikke andet, at finde en anden måde, så man hverken er tvunget til manuelt at klikke på alle celler der skal opdateres eller til at skulle vente i op mod 100 år på at Excel får regnet færdig hver gang man ændrer på kant-indstillinger for en celle?
Med venlig hilsen, Sune