Exsion | Help

HB Software

Automatische uitvoering procedures met VBA

Exsion biedt de mogelijkheid eigen VBA procedures uit te voeren voor of na het gegevens vernieuwen. Verder is het andersom mogelijk de functie "Gegevens vernieuwen" uit te voeren vanuit de eigen procedure. Houdt er wel rekening mee dat fouten die optreden binnen de eigen procedure van invloed kunnen zijn op de werking van Exsion. Test bij eventuele problemen altijd eerst uit of de fout ook optreed met standaard gebruik van Exsion zonder eigen procedures.

Aanroep vanuit een eigen procedure

Vanuit een eigen VBA procedure kan de functie Gegevens vernieuwen worden aangeroepen. Op de plaats waar u in uw eigen procedure de gegevens wilt vernieuwen voegt u de volgende regel toe in de code via de VBA editor (F11):

Application.Run "'Exsion.xlam'!MENU_DATA"

De uitvoering van deze regel heeft exact hetzelfde effect als het drukken op de knop "Gegevens vernieuwen"  in het menu van Exsion.

Om de uitvoering niet afhankelijk te maken van Exsion kunt u het beste om de uitvoering van Exsion functies “On Local Error” regels toevoegen.

On Local Error Resume Next
Application.Run "'Exsion.xlam'!MENU_DATA"
On Local Error GoTo 0

Naast gegevens vernieuwen kunt u ook de functie formules naar waarden automatisch uitvoeren. Neem hiervoor de volgende code op:

Application.Run "'Exsion.xlam'!MENU_VALUES"

Indien u de vraag krijgt of de formules omgezet moeten worden naar waarden kunt u deze onderdrukken door meldingen tijdelijk uit te schakelen. Dat doet u door een regel voor en na de formules naar waarden actie te plaatsen. Eventueel kunt u de huidige instelling opslaan in een variabele om deze vervolgens weer terug te plaatsen.

Dim s_displayAlertsSetting As Boolean

s_displayAlertsSetting = Application.DisplayAlerts
Application.DisplayAlerts = False
On Local Error Resume Next
Application.Run "'Exsion.xlam'!MENU_VALUES"
On Local Error GoTo 0
Application.DisplayAlerts = s_displayAlertsSetting

Uitvoering procedure voor gegevens vernieuwen

Het is mogelijk een procedure uit te voeren net voor het gegevens vernieuwen. Neem hiervoor de volgende code op in het project. Voer in plaats van [Naam eigen procedure] de naam in van de procedure die u wilt uitvoeren. Deze procedure dient binnen hetzelfde project aanwezig te zijn.

Sub Exsion_beforerefresh()
	Call [Naam eigen procedure]
End Sub

Om de gegevens te vernieuwen af te breken kan de volgende code worden gebruikt:

Sub Exsion_beforerefresh()
	If Cancel Then
		Err.Raise 513, "exsion_cancel"
		Exit Sub
	End If
End Sub

Uitvoering procedure na gegevens vernieuwen

Naast het uitvoeren van een procedure net voor het gegevens vernieuwen is het ook mogelijk iets uit te voeren net na het gegevens vernieuwen. Neem hiervoor onderstaande code op in het project. Voer in plaats van [Naam eigen procedure] weer de naam in van de procedure die u wilt uitvoeren.

Sub Exsion_onrefresh()
	Call [Naam eigen procedure]
End Sub

Automatisch verversen na wijzigen parameter

Benoem de cel die u wijzigt met een logische naam. In het voorbeeld hieronder is dit ‘Subcategorie’. Indien u een andere naam gebruikt past u deze dan ook in onderstaande code aan.

Plaats vervolgens de volgende code in ThisWorkbook.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
	If Target = ActiveSheet.Range("Subcategorie") Then
		Application.Run "'Exsion.xlam'!MENU_DATA"
		ActiveSheet.Calculate
	End If
End Sub

©HB Software B.V.

Inhoud
    Add a header to begin generating the table of contents