Programma waarmee ik werk is de VB Editor van Excel omdat ik daar mijn gegevens inlees en mijn resultaten uitschrijf.
De bedoeling is een groot programma te hebben van waaruit kleinere programmas uitgeroepen worden(functies dus).
Die functies zijn an sich gewoon berekeningen. Nu heb ik voor die berekeningen een aantal vaste waardes nodig, het probleem is echter dat sommige van die waardes in meerdere programmas worden gebruikt.
Ik wil dus in het begin een aantal waardes declareren en meteen ook een waarde geven (uitgelezen uit een cell in excell) zodat deze waardes gebruikt kunnen worden in alle functies.
Daarom dacht ik aan
Public X as Double
X = Sheets("Worksheet1").Cells(1,1)
Dan krijg ik echter "Compile error: Invalid outside procedure"
Dan ben ik op het volgende gekomen:
Const X = Sheets("Worksheet1").Cells(1, 1)
Maar dan krijg ik weer een error: "Compile error: Constant expression required"
Als ik gewoon een waarde geef aan de constante is er geen probleem
Dus Const X = 1 werkt wel, maar de bedoeling van het programma is simpel een waarde te kunnen vervangen in excel, vervolgens macro runnen en dan even simpel het resultaat af te lezen.
Nog een andere "oplossing" die ik gevonden had was om alle waardes in het hoofdprogramma te declareren en een waarde te geven en deze dan te gebruiken als attributen bij de functies. Maar als je 50 keer dezelfde functie (met bijvoorbeeld 5 attributen) moet aanroepen, zit je 50 keer met 5 dezelfde attributen. Hetgeen nogal omslachtig is dus.
Heeft iemand een idee hoe ik dit op kan lossen?
De bedoeling is een groot programma te hebben van waaruit kleinere programmas uitgeroepen worden(functies dus).
Die functies zijn an sich gewoon berekeningen. Nu heb ik voor die berekeningen een aantal vaste waardes nodig, het probleem is echter dat sommige van die waardes in meerdere programmas worden gebruikt.
Ik wil dus in het begin een aantal waardes declareren en meteen ook een waarde geven (uitgelezen uit een cell in excell) zodat deze waardes gebruikt kunnen worden in alle functies.
Daarom dacht ik aan
Public X as Double
X = Sheets("Worksheet1").Cells(1,1)
Dan krijg ik echter "Compile error: Invalid outside procedure"
Dan ben ik op het volgende gekomen:
Const X = Sheets("Worksheet1").Cells(1, 1)
Maar dan krijg ik weer een error: "Compile error: Constant expression required"
Als ik gewoon een waarde geef aan de constante is er geen probleem
Dus Const X = 1 werkt wel, maar de bedoeling van het programma is simpel een waarde te kunnen vervangen in excel, vervolgens macro runnen en dan even simpel het resultaat af te lezen.
Nog een andere "oplossing" die ik gevonden had was om alle waardes in het hoofdprogramma te declareren en een waarde te geven en deze dan te gebruiken als attributen bij de functies. Maar als je 50 keer dezelfde functie (met bijvoorbeeld 5 attributen) moet aanroepen, zit je 50 keer met 5 dezelfde attributen. Hetgeen nogal omslachtig is dus.
Heeft iemand een idee hoe ik dit op kan lossen?