Ik probeer dus functies variabel te plakken in excel. Ik heb daarvoor al het volgende stukje script:
Nu probeer ik om bij regel 38 in te bouwen dat hij deze excel functie:
plakt op de rij die door regels 14 t/m 21 wordt bepaald (de var payrow 1 dus)
Bovenstaande excel functie is compleet niet relatief op de laatste verwijzing na (die naar K6). Deze moet in de kolom K blijven en de rijen aflopen die bepaald zijn in de var payrow1
Mijn vraag is: Hoe kan ik deze functie plakken met visual basic in de cellen waarvan de kolom bekend is de rij variabel bepaald (nogmaals payrow1) is en er nog een relatieve verwijzing in de functie staat? Ik kan op een variabele manier wel cellen aanroepen maar dan alleen de waarde en niet zozeer de functie. Anders zou het geen probleem zijn.
Ik kan wel functie elementen in excel vinden en misschien zou ik daarmee een eind moeten komen maar in bovenstaande functie zitten ook nog eens de " in de weg omdat vb deze herkent als programma code
Ik hoop dat bovenstaande niet al te onduidelijk is
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
| Sub Uitbetalenrij() Dim payrow2 As Integer Dim teller1 As Integer Dim teller2 As Integer Dim payrow1 As Integer Dim saverow As Integer Dim laatstegeld As Integer 'dit is de laatste rij waarin staat hoeveel ik of de panatarij nog geld schuldig is saverow = Cells(1, 9) laatstegeld = Cells(saverow, 12) 'deze teller begint op de 100e rij in kolom 11 (rij k) en werkt naar boven totdat hij een waarde vind, 'het rijnummer van deze rijonthoudt hij teller1 = Cells(1, 11) While Cells(teller1, 11) = "" teller1 = teller1 - 1 Wend payrow1 = teller1 Cells(1, 9) = payrow1 'deze teller telt op dezelfde manier door als de vorige teller alleen met een ander beginpunt 'deze teller kijkt waar de een na laatste waarde zich bevind in de 11e rij oftewel rij k teller2 = payrow1 - 1 While Cells(teller2, 11) = "" teller2 = teller2 - 1 Wend payrow2 = teller2 + 1 Cells(1, 10) = payrow2 'Beide tellers schrijven het eindresultaat weg in 2 cellen namelijk I1 (de een na laatste rij met een waarde) 'En J1, de laatste rij met een waarde, deze rijen zijn onzichtbaar omdat de tekst wit is ActiveCell.Offset(i, 0).Formula = "=Dagen360(G22,Vandaag())" 'Nu ervoor zorgen dat de variabele SOM functie in excel alleen komt op de plekken 'naast een uitbetaling van de pantarij in rij L Cells(1, 11) = "" 'Nu nog alleen even de laatste waarde terug zetten zodat de vorige betalingsdata niet verloren gaat Cells(saverow, 12) = laatstegeld End Sub |
Nu probeer ik om bij regel 38 in te bouwen dat hij deze excel functie:
code:
1
| =SOM((INDIRECT("J"&$J$1)):((INDIRECT("J"&$I$1))))-K6 |
plakt op de rij die door regels 14 t/m 21 wordt bepaald (de var payrow 1 dus)
Bovenstaande excel functie is compleet niet relatief op de laatste verwijzing na (die naar K6). Deze moet in de kolom K blijven en de rijen aflopen die bepaald zijn in de var payrow1
Mijn vraag is: Hoe kan ik deze functie plakken met visual basic in de cellen waarvan de kolom bekend is de rij variabel bepaald (nogmaals payrow1) is en er nog een relatieve verwijzing in de functie staat? Ik kan op een variabele manier wel cellen aanroepen maar dan alleen de waarde en niet zozeer de functie. Anders zou het geen probleem zijn.
Ik kan wel functie elementen in excel vinden en misschien zou ik daarmee een eind moeten komen maar in bovenstaande functie zitten ook nog eens de " in de weg omdat vb deze herkent als programma code
Ik hoop dat bovenstaande niet al te onduidelijk is