scherpbierje
Gebruiker
- Lid geworden
- 18 apr 2012
- Berichten
- 9
Hallo, Ik wil met VBA in Excel een gedefinieerde naam toevoegen voor een dynamische view.
De uiteindelijke tekst van de view moet er zo uit zien:
ALS(EN(eigen;jaar2015);(verschuiving(INDIRECT("verbruik!A"&VERGELIJKEN(2015;verbruik!A:A;0));0;6;12;1));Nul)
Hierbij is eigen een boolean variabele, jaar2015 is een boolean variabele, 2015 een integer variabele.
De view laat alleen data zien als 'eigen' en 'jaar2015' WAAR zijn. met de variabele '2015' wordt in een kolom gezocht naar de overeenkomende waarde en wordt de view gedefinieerd voor een bereik van 12 cellen 6 kolommen rechts van de gevonden 2015.
Ik wil een VBA makro met variabelen maken die op basis van het ingegeven jaar_parameter de naam aanmaakt waarbij de jaar_parameter wordt gebruikt.
Ik heb het aanmaken van de view opgenomen en die ziet er dan zo uit:
-------------------------------------------------------------------------------------------------------------
Sub Macro_opname()
ActiveWorkbook.Names.Add Name:="a_3", RefersToR1C1:= _
"=ALS(EN(eigen,Jaar2015),(VERSCHUIVING(INDIRECT(""verbruik!A""&VERGELIJKEN(2015,verbruik!C[-10],0)),0,6,12,1)),Nul)"
ActiveWorkbook.Names("a_3").Comment = ""
End Sub
-----------------------------------------------------------------------------------------------------------------
Als ik deze makro run krijg ik een foutmelding met de vraag of ik een formule wil maken.
Als ik ActiveWorkbook.Names("a_3").Comment = "" uitschakel dan werkt de makro wèl
Ik heb de makro nu zo gedefinieerd waarbij de sub effe() wordt gebruikt om de eigenlijke makro te starten
------------------------------------------------------------------------------------------------------------------------------
Sub Bepaal_eigen_1(jaar_param As String)
VIEW_NAAM = "eigen_" & jaar_param
jaar_naam = "jaar" & jaar_param
Tekst = "=ALS(EN(eigen;" & jaar_naam & ");VERSCHUIVING(INDIRECT(""verbruik!A""&VERGELIJKEN(" & jaar_param & ";verbruik!A:A;0));0;6;12;1);null)"
'MsgBox (Tekst)
ActiveWorkbook.Names.Add Name:=VIEW_NAAM, RefersToR1C1:=Tekst
End Sub
-----------------------------------------------------------------------------------------------------------------------------
Sub effe()
test = Application.Run("Bepaal_eigen_1", 2014)
End Sub
------------------------------------------------------------------------------------------------------------------------------
Zoals de makro nu is krijg ik een foutmelding die vraagt of ik een formule wil maken.
als ik extra "" toevoeg wordt de inhoud van de view als tekst aangemaakt en werkt dus niet.
Er moet dus iets gebeuren met enkele of dubbele quotes, maar ik krijg het niet voor mekaar.
De uiteindelijke tekst van de view moet er zo uit zien:
ALS(EN(eigen;jaar2015);(verschuiving(INDIRECT("verbruik!A"&VERGELIJKEN(2015;verbruik!A:A;0));0;6;12;1));Nul)
Hierbij is eigen een boolean variabele, jaar2015 is een boolean variabele, 2015 een integer variabele.
De view laat alleen data zien als 'eigen' en 'jaar2015' WAAR zijn. met de variabele '2015' wordt in een kolom gezocht naar de overeenkomende waarde en wordt de view gedefinieerd voor een bereik van 12 cellen 6 kolommen rechts van de gevonden 2015.
Ik wil een VBA makro met variabelen maken die op basis van het ingegeven jaar_parameter de naam aanmaakt waarbij de jaar_parameter wordt gebruikt.
Ik heb het aanmaken van de view opgenomen en die ziet er dan zo uit:
-------------------------------------------------------------------------------------------------------------
Sub Macro_opname()
ActiveWorkbook.Names.Add Name:="a_3", RefersToR1C1:= _
"=ALS(EN(eigen,Jaar2015),(VERSCHUIVING(INDIRECT(""verbruik!A""&VERGELIJKEN(2015,verbruik!C[-10],0)),0,6,12,1)),Nul)"
ActiveWorkbook.Names("a_3").Comment = ""
End Sub
-----------------------------------------------------------------------------------------------------------------
Als ik deze makro run krijg ik een foutmelding met de vraag of ik een formule wil maken.
Als ik ActiveWorkbook.Names("a_3").Comment = "" uitschakel dan werkt de makro wèl
Ik heb de makro nu zo gedefinieerd waarbij de sub effe() wordt gebruikt om de eigenlijke makro te starten
------------------------------------------------------------------------------------------------------------------------------
Sub Bepaal_eigen_1(jaar_param As String)
VIEW_NAAM = "eigen_" & jaar_param
jaar_naam = "jaar" & jaar_param
Tekst = "=ALS(EN(eigen;" & jaar_naam & ");VERSCHUIVING(INDIRECT(""verbruik!A""&VERGELIJKEN(" & jaar_param & ";verbruik!A:A;0));0;6;12;1);null)"
'MsgBox (Tekst)
ActiveWorkbook.Names.Add Name:=VIEW_NAAM, RefersToR1C1:=Tekst
End Sub
-----------------------------------------------------------------------------------------------------------------------------
Sub effe()
test = Application.Run("Bepaal_eigen_1", 2014)
End Sub
------------------------------------------------------------------------------------------------------------------------------
Zoals de makro nu is krijg ik een foutmelding die vraagt of ik een formule wil maken.
als ik extra "" toevoeg wordt de inhoud van de view als tekst aangemaakt en werkt dus niet.
Er moet dus iets gebeuren met enkele of dubbele quotes, maar ik krijg het niet voor mekaar.