Improve simplicity by consolidating all a workbook’s dynamic settings into a single userform…
Do you ever maintain a workbook that contains a number of dynamic reports, each with a variety of settings?
Consider holding all settings on a dedicated tab, changed via a VBA userform.
Since all formulae will now be referring to another worksheet, an important
consideration is to keep the name of that worksheet as short as possible (e.g.
AA
).
The VBA code to operate the userform is very short, e.g.:
Private Sub UserForm_Initialize()
Dim c As Range
'clear any previous genera in the genus combobox then add all genera from the
genus list
Combo_Genus.Clear
For Each c In Sheet1.Range("Genus")
Combo_Genus.AddItem c.Value
Next c
'set each control to the relevant value in the global constants tab
Combo_Genus.Value = Sheet2.Range("Set").Value
Date_Start.Value = Format(Sheet2.Range("Date_Start").Value, "dd/mm/yyyy")
Date_End.Value = Format(Sheet2.Range("Date_End").Value, "dd/mm/yyyy")
End Sub
Private Sub Button_Set_Click()
'set each global constant to the relevant control value
Sheet2.Range("Set").Value = Combo_Genus.Value
Sheet2.Range("Date_Start").Value = CDate(Date_Start.Value)
Sheet2.Range("Date_End").Value = CDate(Date_End.Value)
End
End Sub
Here you can click to download examples of a reporting workbook using local constants and one using global constants. Macros must be enabled for the global constants workbook to function.