declareren constante mbv range("naam")

Status
Niet open voor verdere reacties.

dezilk

Gebruiker
Lid geworden
25 sep 2005
Berichten
41
Hoi allen,

Ik wil graag een constante declareren door een constante toe te wijzen:

Global Const EI_1_een = Range("EI").Value

in excel heb ik een cel de naam EI gegeven. In functies werkt dit wel maar als ik dit globaal wil doen dan mislukt het.

Iemand een idee waarom?
 
Omdat Range("EI").Value geen constante is zoals bijvoorbeeld wel "xxx" ??
 
declareren variabele in module?

hmmm....


Als ik het probeer als variabele bovenaan in de module met:

Dim EI_1_een As Double: EI_1_een = Range("EI").Value

Krijg ik de melding:

ongeldig buiten procedure

Hoe kan ik het dan het beste aanpakken?

Bij voorbaat dank,

Wim
 
Splits het op.

Bovenaan in de module:

Code:
Dim EI_1_een As Double

Ergens in de code van de module:

Code:
EI_1_een = Range("EI").Value
 
niet meerdere malen

Dan moet ik moet ik het deel:

EI_1_een = Range("EI").Value

opnemen in iedere functie waarin ik de waarde wil gebruiken.

Dan moet ik dat dus heel veel keer doen. En dat is precies wat ik niet wil doen.

Hoe kan ik dit voorkomen?

Alvast bedankt,

Wim
 
Zoek eens in de hulpfunktie van VBE naar 'Public'
 
proberen

Als ik de variabele als public defineer:

Public XXX As Double: XXX = Range("EI").Value

Function Funxxx() As Double
Funxxx = XXX
End Function​

krijg ik bij het gebruik van de functie de foutmelding:

Compileerfout:
Ongeldig buiten procedure

Iemand een idee waardoor dat komt?

Als ik de variabele in een functie defineer dan werkt het wel, nu kan ik wel alle variabelen defineren met een functie, maar echt elegant vind ik dat niet.

Iemand een oplossing?

Bij voorbaat dank,

Wim
 
Je kunt het argument ook doorgeven naar de funktie

Code:
Sub test()
  c4=Funxxx(Range("EI").Value)
End sub

Code:
Function Funxxx(c5) As Double
  Funxxx = 20* c5
End Function
 
Hoi Dezilk,

Je krijgt een compileerfout omdat je geen waarden aan een variabele kunt toekennen buiten een routine.

Als je het elegant wilt oplossen zou ik het zo doen:
Code:
Option Explicit

Public Const MIJN_CONTSTANTE = "EI"

Sub TestFunxxx()
    Debug.Print GetFunxxx
End Sub

Public Function GetFunxxx() As Double
    GetFunxxx = XXX
End Function

Private Property Get XXX() As Double
    XXX = Range(MIJN_CONTSTANTE) '.Value is default property van Range
End Property
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan